自己管理ノードの作成

新しい自己管理ノードを作成し、既存のクラスタに追加する方法を確認します。

コンピュート・サービスを使用して、自己管理ノードを実行するコンピュート・インスタンスを作成します。自己管理ノードを作成したら、既存の拡張クラスタに追加します。

自己管理ノードでポッド・ネットワーキングにFlannel CNIプラグインを使用する場合は、コンソール、CLIおよびAPIを使用して自己管理ノードを作成できます。自己管理ノードでポッド・ネットワーキングにOCI VCNネイティブ・ポッド・ネットワーキングCNIプラグインを使用する場合は、CLIおよびAPIを使用して自己管理ノードを作成できます。

  • コンソールを使用して自己管理ノードを作成するには:

    1. Kubernetes APIプライベート・エンドポイントを含むcloud-initスクリプトと、自己管理ノードを追加する拡張クラスタのbase64エンコードCA証明書を作成します。「自己管理ノードのCloud-initスクリプトの作成」を参照してください。
    2. 自己管理ノードをホストする新しいコンピュート・インスタンスを作成します:
      1. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。
      2. 新しいコンピュート・インスタンスを作成するには、コンピュート・サービスのドキュメントの手順に従います。新しいコンピュート・インスタンスが拡張クラスタに参加できるようにするには、適切なポリシーが存在する必要があります。「自己管理ノードの動的グループおよびポリシーの作成」を参照してください。
      3. イメージとシェイプ」セクションで、「イメージの変更」をクリックします。
      4. 「マイ・イメージ」をクリックし、「イメージOCID」オプションを選択してから、使用するOKE Oracle Linux 7 (OL7)またはOracle Linux 8 (OL8)イメージのOCIDを入力します。イメージ要件を参照してください。
      5. 「拡張オプションの表示」をクリックし、「管理」タブで「cloud-initスクリプトの貼付け」オプションを選択します。
      6. Kubernetes APIプライベート・エンドポイントおよびbase64でエンコードされたCA証明書を含むcloud-initスクリプトをコピーして、Cloud-initスクリプト・フィールドに貼り付けます。「自己管理ノードのCloud-initスクリプトの作成」を参照してください。
      7. 「作成」をクリックして、自己管理ノードをホストするコンピュート・インスタンスを作成します。

      コンピュート・インスタンスが作成されると、指定したKubernetes APIエンドポイントを使用して、自己管理ノードとしてクラスタに追加されます。

    3. 自己管理ノードがKubernetesクラスタに追加されたことを確認し、次のように入力してノードの準備状況を確認します:
      kubectl get nodes

      例:

      kubectl get nodes
      
      NAME           STATUS   ROLES    AGE   VERSION
      10.0.103.170   Ready    <none>   40m   v1.25.4
    4. 次のように入力して、ラベルがノードに追加され、予期したとおりに設定されていることを確認します。
      kubectl get node <node-name> -o json | jq '.metadata.labels'

      たとえば

      kubectl get node 10.0.103.170 -o json | jq '.metadata.labels'
      
      {
      ...
      "displayName": "oke-self-managed-node",
      "oci.oraclecloud.com/node.info.byon": "true",
      ...
      }
  • oci Computeインスタンス起動コマンドおよび必要なパラメータを使用して、自己管理ノードを作成します:

    oci compute instance launch --availability-domain <availability-domain> --compartment-id <compartment-ocid> --shape <shape> --subnet-id <subnet-ocid> [OPTIONS]

    CLIコマンドのフラグおよび変数オプションの完全なリストは、コマンドライン・リファレンスを参照してください。

    ヒント:

    • oci Compute instance launchコマンドの--user-data-fileパラメータを使用して、cloud-initスクリプトを含むファイルの名前(自己管理ノードとしてクラスタにコンピュート・インスタンスを追加するために必要)を指定します。「自己管理ノードのCloud-initスクリプトの作成」を参照してください。
    • oci Compute instance launchコマンドの--image-idパラメータを設定して、自己管理ノードの作成に使用するイメージを指定します。イメージ要件を参照してください。
    • 自己管理ノードでポッド・ネットワーキングにOCI VCNネイティブ・ポッド・ネットワーキングCNIプラグインを使用する場合は、次のようにoci compute instance launchコマンドに--metadataパラメータを追加します:
      --metadata '{"oke-native-pod-networking": "true", "oke-max-pods": "<max-pods-per-node>", "pod-subnets": "<pod-subnet-ocid>", "pod-nsgids": "<nsg-ocid>"}'

      ここでは:

      • "oke-native-pod-networking": "true"は、自己管理ノードがポッド・ネットワークにOCI VCNネイティブ・ポッド・ネットワークCNIプラグインを使用することを指定します。
      • "oke-max-pods": "<max-pods-per-node>"は、自己管理ノードで実行するポッドの最大数を指定します。
      • "pod-subnets": "<pod-subnet-ocid>"は、ポッド間の通信およびプライベート・ポッドIPアドレスを使用した個々のポッドへの直接アクセスをサポートするポッド・サブネットのOCIDを指定します。
      • "pod-nsgids": "<nsg-ocid>"では、オプションで、ネットワーク・トラフィックをポッドにルーティングするセキュリティ・ルールを含む1つ以上のネットワーク・セキュリティ・グループ(NSG)のOCIDを指定します。複数のNSGを指定する場合は、"pod-nsgids": "<nsg-ocid-1>,<nsg-ocid-2>"の形式でカンマ区切りリストを使用します

      OCI VCNネイティブ・ポッド・ネットワークCNIプラグインの詳細は、「ポッド・ネットワーク用のOCI VCNネイティブ・ポッド・ネットワークCNIプラグインの使用」を参照してください。

    例:

    例1: ポッド・ネットワーキングにflannel CNIプラグインを使用する自己管理ノードを作成するコマンド。

    oci compute instance launch \
        --profile oc1 \
        --compartment-id ocid1.compartment.oc1..aaaaaaa______neoq \
        --subnet-id ocid1.subnet.oc1.phx.aaaaaaa______hzia \
        --shape VM.Standard2.2 \
        --availability-domain zkJl:PHX-AD-1 \
        --image-id ocid1.image.oc1.phx.aaaaaaa______lcra \
        --display-name smn \
        --user-data-file my-cloud-init-file \
        --ssh-authorized-keys-file my-ssh-key-file

    例2: ポッド・ネットワークにOCI VCNネイティブ・ポッド・ネットワークCNIプラグインを使用する自己管理ノードを作成するコマンド。

    oci compute instance launch \
        --profile oc1 \
        --compartment-id ocid1.compartment.oc1..aaaaaaa______neoq \
        --subnet-id ocid1.subnet.oc1.phx.aaaaaaa______hzia \
        --shape VM.Standard2.2 \
        --availability-domain zkJl:PHX-AD-1 \
        --image-id ocid1.image.oc1.phx.aaaaaaa______lcra \
        --display-name smn-npn \
        --user-data-file my-cloud-init-file \
        --ssh-authorized-keys-file my-ssh-key-file \
        --metadata '{"oke-native-pod-networking": "true", 
          "oke-max-pods": "21", 
          "pod-subnets": "ocid1.subnet.oc1.phx.aaaaaaa______4wka"},
          "pod-nsgids": "ocid1.networksecuritygroup.oc1.phx.aaaaaaa______qfca,ocid1.networksecuritygroup.oc1.phx.aaaaaaa______ohea"'

    例3: ポッド・ネットワーキングにOCI VCNネイティブ・ポッド・ネットワーキングCNIプラグインを使用する自己管理ノードを作成する代替コマンド。

    oci compute instance launch \
        --profile oc1 \
        --compartment-id ocid1.compartment.oc1..aaaaaaa______neoq \
        --subnet-id ocid1.subnet.oc1.phx.aaaaaaa______hzia \
        --shape VM.Standard2.2 \
        --availability-domain zkJl:PHX-AD-1 \
        --image-id ocid1.image.oc1.phx.aaaaaaa______lcra \
        --display-name smn-npn \
        --metadata '{"ssh_authorized_keys": "ssh-rsa AAAAB3NzaC1yc2EAAAA...",
          "oke-native-pod-networking": "true",
          "oke-max-pods": "21",
          "pod-subnets": "ocid1.subnet.oc1.phx.aaaaaaa______4wka,ocid1.subnet.oc1.phx.aaaaaaa______hzia",
          "pod-nsgids": "ocid1.networksecuritygroup.oc1.phx.aaaaaaa______qfca,ocid1.networksecuritygroup.oc1.phx.aaaaaaa______",
          "user_data": "IyEvdXNyL2Jpbi9lbnYgYmFzaA..."}'
  • LaunchInstance操作を実行して、自己管理ノードを作成します。

    自己管理ノードでポッド・ネットワーキングにOCI VCNネイティブ・ポッド・ネットワーキングCNIプラグインを使用する場合は、metadata属性を使用して次のキーの値を指定します:

    • oke-native-pod-networking:自己管理ノードがポッド・ネットワークにOCI VCNネイティブ・ポッド・ネットワークCNIプラグインを使用することを指定する場合は、trueに設定します。
    • oke-max-pods: 自己管理ノードで実行するポッドの最大数。
    • pod-subnets: ポッド間の通信とプライベート・ポッドIPアドレスを使用した個々のポッドへの直接アクセスをサポートするポッド・サブネットのOCID。
    • pod-nsgids: (オプション)ネットワーク・トラフィックをポッドにルーティングするセキュリティ・ルールを含む1つ以上のネットワーク・セキュリティ・グループ(NSG)のOCID。複数のNSGを指定する場合は、"pod-nsgids": "<nsg-ocid-1>,<nsg-ocid-2>"の形式でカンマ区切りリストを使用します

    OCI VCNネイティブ・ポッド・ネットワークCNIプラグインの詳細は、「ポッド・ネットワーク用のOCI VCNネイティブ・ポッド・ネットワークCNIプラグインの使用」を参照してください。