Kubernetesクラスタの作成

Container Engine for Kubernetesを使用して、新しいKubernetesクラスタを作成できます。クラスタを作成するには、テナンシの管理者グループに属しているか、ポリシーがCLUSTER_MANAGE権限を付与するグループに属している必要があります。クラスタの作成とデプロイメントのためのポリシー構成を参照してください。

コンソールを使用して、まず新しいクラスタ(クラスタ名、およびコントロール・プレーン・ノードにインストールするKubernetesのバージョン)の基本詳細を指定します。その後、次の2つの方法のいずれかでクラスタを作成できます:

  • 「クイック作成」ワークフローのデフォルト設定の使用により、必要に応じて新しいネットワーク・リソースでクラスタを作成。このアプローチは、新しいクラスタを作成する最も速い方法です。すべてのデフォルト値をそのまま使用すると、数回のクリックのみで新しいクラスタを作成できます。Kubernetes APIエンドポイント、ワーカー・ノードおよびロード・バランサのリージョナル・サブネットなど、クラスタの新しいネットワーク・リソースが自動的に作成されます。ロード・バランサのリージョナル・サブネットはパブリックですが、Kubernetes APIエンドポイントおよびワーカー・ノードのリージョナル・サブネットはパブリックかプライベートかを指定します。クイック作成ワークフローでクラスタを作成するには、新しいネットワーク・リソースの作成に必要な権限がポリシーによって付与されるグループに属している必要があります(グループに対する1つ以上の追加ポリシーの作成を参照)。

  • カスタム作成ワークフローでカスタム設定を使用。このアプローチを使用すると、新しいクラスタを最大限に制御できます。暗号化設定など、新しいクラスタのプロパティを明示的に定義できます。また、Kubernetes APIエンドポイント、ワーカー・ノードおよびロード・バランサを作成する既存のパブリック・サブネットやプライベート・サブネットなど、使用する既存のネットワーク・リソースを明示的に指定できます。

    通常は、カスタム作成ワークフローで新しいクラスタを定義するときにノード・プールをすぐに定義しますが、その必要はありません。ノード・プールのないクラスタを作成し、後でノード・プールを追加できます。最初にノード・プールを持たないクラスタを作成する理由は、CalicoなどのCNIネットワーク・プロバイダをインストールおよび構成してKubernetes NetworkPolicyリソースをサポートする場合です。ポッドがすでに実行されている既存のノード・プールがあるクラスタにCalicoをインストールする場合、Calicoのインストールが完了したらポッドを再作成する必要があります。たとえば、kubectl rollout restartコマンドを実行します。クラスタにノード・プールを作成する前にCalicoをクラスタにインストールすると(推奨)、再作成するポッドがないことを確認できます。例: Calicoのインストールおよびネットワーク・ポリシーの設定を参照してください。

クラスタの作成方法に関係なく、Container Engine for Kubernetesではワーカー・ノードに次の形式で名前を付けます:

oke-c<part-of-cluster-OCID>-n<part-of-node-pool-OCID>-s<part-of-subnet-OCID>-<slot>

ここでは:

  • okeは、Container Engine for Kubernetesによって作成されたすべてのワーカー・ノードの標準の接頭辞です
  • c<part-of-cluster-OCID>は、クラスタのOCIDの一部で、先頭に文字cを付けたものです
  • n<part-of-node-pool-OCID>は、ノード・プールのOCIDの一部で、先頭に文字nを付けたものです
  • s<part-of-subnet-OCID>は、サブネットのOCIDの一部で、先頭に文字sを付けたものです
  • <slot>は、サブネット内のノードの序数です(たとえば、01)

たとえば、クラスタがノード・プールに2つのノードを持つことを指定した場合、2つのノードに名前が付けられます:

  • oke-cywiqripuyg-nsgagklgnst-st2qczvnmba-0
  • oke-cywiqripuyg-nsgagklgnst-st2qczvnmba-1

Container Engine for Kubernetesがワーカー・ノードに付ける自動生成された名前は変更しないでください。

高可用性を確保するために、Container Engine for Kubernetesは次を行います:

  • 複数のOracle管理コントロール・プレーン・ノードにKubernetesコントロール・プレーンを作成します(サポートされている場合は、リージョン内の異なる可用性ドメインにコントロール・プレーン・ノードを分散します)
  • 可用性ドメイン内の各フォルト・ドメインにワーカー・ノードを作成します(他のインフラストラクチャの制限に従って、フォルト・ドメイン全体に可能なかぎり均等にワーカー・ノードを分散します)