新規クラスタでの仮想ノードおよび仮想ノード・プールの作成

Kubernetes Engine (OKE)を使用して、新しいクラスタに仮想ノードおよび仮想ノード・プールを作成する方法をご紹介します。

仮想ノードを作成するには、新しいクラスタに仮想ノード・プールを作成します。仮想ノードおよび仮想ノード・プールは、拡張クラスタでのみ作成できます。

「仮想ノード・プールの作成」も参照してください。

コンソール、CLIおよびAPIを使用して、仮想ノードおよび仮想ノード・プールを作成できます。

  • コンソールを使用して仮想ノード・プールおよび仮想ノードを含むクラスタを作成するには:

    1. コンソールを使用した、カスタムの作成ワークフローでの明示的に定義された設定によるクラスタの作成の手順に従って、新しいクラスタを作成します。
    2. 「ネットワーク設定」ページで、クラスタのネットワーク・タイプとしてVCNネイティブ・ポッド・ネットワーキングを指定します。
    3. 「ノード・プール」ページで、作成する仮想ノード・プールの「名前」および「コンパートメント」を指定します。
    4. このノード・プールのワーカー・ノードのノード・タイプ:「仮想」として指定します。
    5. 仮想ノード・プールを定義します。
      1. 仮想ノード・プールの構成詳細を指定します:
        • ノード配置構成:
          • 可用性ドメイン:仮想ノードを配置する可用性のドメイン。
          • フォルト・ドメイン: (オプション)仮想ノードを配置する可用性ドメイン内の1つ以上のフォルト・ドメイン。

          オプションで、「行の追加」を選択して、仮想ノードを配置する追加のドメインを選択します。

          仮想ノードは、作成されると、選択した可用性ドメインおよびフォルト・ドメイン全体で可能なかぎり均等に分散されます。特定のアベイラビリティ・ドメインにフォルト・ドメインを選択しない場合、仮想ノードは、そのアベイラビリティ・ドメイン内のすべてのフォルト・ドメインで可能なかぎり均等に分散されます。

        • ノードの数:仮想ノード・プールに作成する仮想ノードの数。選択した可用性ドメイン、および各可用性ドメインに指定したリージョナルド・サブネット(推奨)またはAD固有のサブネットに配置される。
        • ポッド・シェイプ: 仮想ノード・プールの仮想ノードで実行されているポッドに使用するシェイプ。シェイプによって、ポッドを実行するプロセッサ・タイプが決まります。

          Kubernetes Engineでサポートされているテナンシで使用可能なシェイプのみが示されます。「ワーカー・ノードにサポートされているイメージ(カスタム・イメージを含む)およびシェイプ」を参照してください。

          ポッド仕様では、仮想ノードのCPUおよびメモリー・リソース要件を明示的に指定します(Kubernetesドキュメントのコンテナおよびポッドへのメモリー・リソースの割当ておよびコンテナおよびポッドへのCPUリソースの割当てを参照)。

        • 仮想ノード通信:
          • サブネット・コンパートメント:仮想ノード・サブネットが存在するコンパートメント。
          • サブネット:リージョナル・サブネット(推奨)またはAD固有のサブネット。仮想ノードをホストするように構成されます。ロード・バランサ・サブネットを指定した場合、仮想ノード・サブネットは異なる必要があります。指定するサブネットは、プライベート(推奨)またはパブリックにでき、リージョナル(推奨)またはAD固有にできます。ポッド・サブネットと仮想ノード・サブネットは同じサブネットであることが推奨されます(この場合、仮想ノード・サブネットはプライベートである必要があります)。サブネットの構成を参照してください。
          • ネットワーク・セキュリティ・グループ(NSG)でのセキュリティ・ルールの使用:指定した1つ以上のネットワーク・セキュリティ・グループ(NSG)に対して定義されたセキュリティ・ルールを使用して、仮想ノード・サブネットへのアクセスを制御します(最大5つ)。NSGに対して定義されたセキュリティ・ルールは、セキュリティ・リストに対して定義されたセキュリティ・ルールのかわりに、またはNSGに対して定義されたセキュリティ・ルールを使用できます(NSGをお薦めします)。NSGに指定するセキュリティ・ルールの詳細は、ワーカー・ノードおよびポッドのセキュリティ・ルールを参照してください。
        • ポッド通信:仮想ノードで実行されているポッドは、VCNネイティブ・ポッド・ネットワーキングを使用します。ノード・プール内のポッドがポッド・サブネットを使用して相互に通信する方法を指定します:
          • サブネット・コンパートメント:ポッド・サブネットが存在するコンパートメント。
          • サブネット:ポッドをホストするように構成されたリージョナル・サブネット。仮想ノードに指定するポッド・サブネットはプライベートである必要があります。ポッド・サブネットと仮想ノード・サブネットは同じサブネットであることをお薦めします(その場合、Oracleではセキュリティ・リストではなくネットワーク・セキュリティ・グループでセキュリティ・ルールを定義することをお薦めします)。サブネットの構成を参照してください。
          • ネットワーク・セキュリティ・グループ(NSG)でのセキュリティ・ルールの使用:指定した1つ以上のネットワーク・セキュリティ・グループ(NSG)に対して定義されたセキュリティ・ルールを使用して、ポッド・サブネットへのアクセスを制御します(最大5つ)。NSGに対して定義されたセキュリティ・ルールは、セキュリティ・リストに対して定義されたセキュリティ・ルールのかわりに、またはNSGに対して定義されたセキュリティ・ルールを使用できます(NSGをお薦めします)。NSGに指定するセキュリティ・ルールの詳細は、ワーカー・ノードおよびポッドのセキュリティ・ルールを参照してください。

          ポッド通信の詳細は、ポッド・ネットワーキングを参照してください。

      2. 拡張仮想ノード・プール・オプションのデフォルトを受け入れるか、「拡張オプション」を選択して、次のように代替を指定します。

        • ノード・プール・タグ: (オプション)仮想ノード・プールに追加する1つ以上のタグ。タグ付けにより、コンパートメント間で異なるリソースをグループ化でき、独自のメタデータを使用してリソースに注釈を付けることもできます。Kubernetesクラスタ関連リソースのタグ付けを参照してください。
        • Kubernetesラベル: (オプション)仮想ノード・プールの仮想ノードに追加するための1つまたは複数のラベル(デフォルト・ラベルに加えて)。特定のノード・プールでワークロードのターゲットに設定できるようになります。詳細は、Kubernetesのドキュメントのノードへのポッドの割当てを参照してください。
        • Kubernetesテイント: (オプション)仮想ノード・プール内の仮想ノードに追加する1つ以上のテイント。塗料を使用すると、仮想ノードはポッドを再ペルできるため、ポッドが特定の仮想ノード・プールの仮想ノードで実行されないようにできます。taintは仮想ノードにのみ適用できることに注意してください。詳細は、Kubernetesのドキュメントのノードへのポッドの割当てを参照してください。
    6. 「次」を選択して、新しいクラスタ用に入力した詳細を確認します。
    7. 新しいクラスタを作成するには、「クラスタの作成」を選択します。
  • oci ce cluster createおよびoci ce virtual-node-pool createコマンド(および必須パラメータ)を使用して、仮想ノード・プールおよび仮想ノードを含む新しいクラスタを作成します:

    1. 新しいクラスタを作成し、ポッド・ネットワーク用のOCI VCNネイティブ・ポッド・ネットワークCNIプラグインを指定します:
      oci ce cluster create \
      --compartment-id <compartment-ocid> \
      --name <cluster-name> \
      --vcn-id <vcn-ocid> \
      --type ENHANCED_CLUSTER \
      --kubernetes-version <kubernetes-version> \
      --service-lb-subnet-ids "[\"<lb-subnet-ocid>\"]" \
      --endpoint-subnet-id <api-endpoint-subnet-ocid> \
      --endpoint-public-ip-enabled <true|false> \
      --endpoint-nsg-ids "[\"<api-endpoint-nsg-ocid>"]" \
      --cluster-pod-network-options '[{"cniType":"OCI_VCN_IP_NATIVE"}]'

      例:

      oci ce cluster create \
      --compartment-id ocid1.compartment.oc1..aaaaaaaa______n5q \
      --name sales \
      --vcn-id ocid1.vcn.oc1.phx.aaaaaaaa______lhq \
      --type ENHANCED_CLUSTER \
      --kubernetes-version v1.25.4 \
      --service-lb-subnet-ids "[\"ocid1.subnet.oc1.phx.aaaaaaaa______g7q"]" \
      --endpoint-subnet-id ocid1.subnet.oc1.phx.aaaaaaaa______sna \
      --endpoint-public-ip-enabled true \
      --endpoint-nsg-ids "[\"ocid1.networksecuritygroup.oc1.phx.aaaaaaaa______5qq\"]" \
      --cluster-pod-network-options '[{"cniType":"OCI_VCN_IP_NATIVE"}]'
    2. 次のステップで使用する新しいクラスタのOCIDを取得します。
    3. クラスタに新しい仮想ノード・プールを作成します。
      oci ce virtual-node-pool create \
      --cluster-id <cluster-ocid> \
      --compartment-id <compartment-ocid> \
      --display-name <node-pool-name> \
      --kubernetes-version <kubernetes-version> \
      --placement-configurations "[{\"availabilityDomain\":\"<ad-name>\",\"faultDomain\":[\"FAULT-DOMAIN-<n>\"],\"subnetId\":\"<virtualnode-subnet-ocid>\"}]" \
      --nsg-ids "[\"<virtual-node-nsg-ocid>\"]" \
      --pod-configuration "{\"subnetId\":\"<pod-subnet-ocid>\",\"nsgIds\":[\"<pod-nsg-ocid>\"],\"shape\":\"<shape-name>\"}" \
      --size <number-of-nodes>
      ここでは:
      • <ad-name>は、仮想ノードを配置する可用性ドメインの名前です。使用する可用性ドメイン名を確認するには、次を実行します:
        oci iam availability-domain list
      • <shape-name>は、Pod.Standard.E3.FlexPod.Standard.E4.Flexのいずれかです。

      例:

      oci ce virtual-node-pool create \
      --cluster-id ocid1.cluster.oc1.phx.aaaaaaaa______w5q \
      --compartment-id ocid1.compartment.oc1..aaaaaaaa______n5q \
      --display-name sales-vnp \
      --kubernetes-version v1.24.1 \
      --placement-configurations "[{\"availabilityDomain\":\"GMvH:PHX-AD-1\",\"faultDomain\":[\"FAULT-DOMAIN-1\"],\"subnetId\":\"ocid1.subnet.oc1.phx.aaaaaaaa______sra\"}]" \
      --nsg-ids "[\"ocid1.networksecuritygroup.oc1.phx.aaaaaaaa______hpa\"]" \
      --pod-configuration "{\"subnetId\":\"ocid1.subnet.oc1.phx.aaaaaaaa______o7q\",\"nsgIds\":[\"ocid1.networksecuritygroup.oc1.phx.aaaaaaaa______osq\"],\"shape\":\"Pod.Standard.E4.Flex\"}" \
      --size 1

    CLIコマンドのパラメータおよび値の完全なリストは、CLIコマンド・リファレンスを参照してください。

  • CreateVirtualNodePool操作を実行して、既存のクラスタに仮想ノード・プールおよび仮想ノードを作成します。