7 OCIプロバイダ

Oracle Cloud Infrastructure (OCI)でKubernetesクラスタを作成するために使用するociプロバイダについて学習します。

Kubernetesクラスタは、ociプロバイダを使用してOCIにデプロイされます。 ociプロバイダは、OCIのKubernetesクラスタAPIプロバイダを使用してデプロイメントを実行します。 これは、KubernetesクラスタAPIの実装です。 KubernetesクラスタAPIは、Kubernetesクラスタで実行されているアプリケーションによってサービスされるKubernetesカスタム・リソース(CR)として実装されます。 KubernetesクラスタAPIには大きなインタフェースがあり、アップストリームのドキュメントで説明されています。 KubernetesクラスタAPIの詳細は、「KubernetesクラスタAPIドキュメント」を参照してください。 OCIのクラスタAPI実装の詳細は、OCI KubernetesクラスタAPIプロバイダ」のドキュメントを参照してください。

OCIにクラスタを作成するには、既存のテナンシに資格証明を指定する必要があります。 必要な権限は、作成されたクラスタの構成によって異なります。 デプロイメントによっては、コンピュート・インスタンスを作成および破棄する権限を持つだけで十分である場合があります。 その他のデプロイメントでは、より多くの権限が必要になる場合があります。

クラスタは、特定のコンパートメントにデプロイされます。 ociプロバイダでは、コンパートメントが使用可能である必要があります。 コンパートメントは、Oracle Cloud識別子(OCID)またはコンパートメント階層のパス(parentcompartment/mycompartmentなど)で指定できます。

KubernetesクラスタAPIを実装するコントローラは、Kubernetesクラスタ内で実行されます。 これらのクラスタは、「管理クラスタ」と呼ばれます。 管理クラスタは、「ワークロード・クラスタ」と呼ばれる他のクラスタのライフサイクルを制御します。 ワークロード・クラスタは、独自の管理クラスタにすることができます。

KubernetesクラスタAPIを使用してOCIにクラスタをデプロイするには、Kubernetesクラスタが使用可能である必要があります。 実行中の任意のクラスタを使用できます。 使用するクラスタを設定するには、環境変数KUBECONFIGを設定するか、またはocneコマンドの--kubeconfigオプションを使用します。 構成ファイルを使用してこのクラスタを設定することもできます。 使用可能なクラスタがない場合は、libvirtプロバイダを使用して、デフォルトの構成でクラスタが自動的に作成されます。 このクラスタは、コンテキストに応じて「ブートストラップ・クラスタ」または「かない」と呼ばれます。

クラスタがデプロイされると、管理クラスタのKubernetesクラスタAPIリソースを使用して管理されます。

ワークロード・クラスタは、独自の管理クラスタにすることができます。 これは、「自己管理クラスタ」と呼ばれます。 クラスタがブートストラップ・クラスタによってデプロイされると、KubernetesクラスタAPIリソースがブートストラップ・クラスタから新しいクラスタに移行されます。

図7-1 OCIクラスタ

この図は、OCIプロバイダで作成されたKubernetesクラスタのアーキテクチャを示しています。 CLIは、コンテナ・レジストリからOCKイメージをプルし、それをOCIバージョンに変換して、コンパートメントにプッシュします。 その後、OCKイメージは、コンピュート・インスタンスがKubernetesクラスタにノードを作成するための基礎として使用されます。

OCIクラスタ・アーキテクチャには、次のコンポーネントがあります:

  • CLI: Kubernetesクラスタの作成および管理に使用されるCLI。 ocneコマンド。

  • デフォルト構成: すべてのocneコマンドの構成を含むYAMLファイル。

  • クラスタ構成: 特定のKubernetesクラスタの構成を含むYAMLファイル。

  • クラスタAPIテンプレート: クラスタを作成するためのKubernetesクラスタAPIのクラスタ・リソースを含むYAMLファイル。

  • OCI CLI: OCI CLIは、テナンシおよびコンパートメントに対して読取りおよび書込みを行う構成を含め、localhostにインストールされます。

  • コンテナ・レジストリ: Kubernetesクラスタ内のノードの作成に使用されるイメージのプルに使用されるコンテナ・レジストリ。 デフォルトはOracle Container Registryです。

  • OCI OCKイメージ: CLIは、コンテナ・レジストリからプルされたOCKイメージに基づいて、このイメージを作成するために使用されます。 CLIを使用して、このイメージをOCIにアップロードします。

  • エフェメラル、ブートストラップ、または管理クラスタ: CLIコマンドの実行に使用されるKubernetesクラスタ。 このクラスタは、クラスタ・サービスの強化やクラスタの管理にも使用できます。

  • コンパートメント: クラスタが作成されるOCIコンパートメント。

  • OCKイメージ: OCKイメージは、オブジェクト・ストレージ・バケットにロードされます。 アップロードが完了すると、OCKイメージからカスタム・コンピュート・イメージが作成されます。

  • カスタム・コンピュート・イメージ: OCKイメージはカスタム・コンピュート・イメージとして使用でき、Kubernetesクラスタにコンピュート・ノードを作成するために使用できます。

  • コントロール・プレーン・ロード・バランサ: コントロール・プレーン・ノードの高可用性(HA)に使用されるネットワーク・ロード・バランサ。

  • コントロール・プレーン・ノード: Kubernetesクラスタ内のコントロール・プレーン・ノードを実行しているコンピュート・インスタンス。

  • ワーカー・ノード: Kubernetesクラスタ内のワーカー・ノードを実行しているコンピュート・インスタンス。