自己管理ノードの作成
新しい自己管理ノードを作成し、既存のクラスタに追加する方法を確認します。
コンピュート・サービスを使用して、自己管理ノードを実行するコンピュート・インスタンスを作成します。自己管理ノードを作成したら、既存の拡張クラスタに追加します。
自己管理ノードでポッド・ネットワーキングにFlannel CNIプラグインを使用する場合は、コンソール、CLIおよびAPIを使用して自己管理ノードを作成できます。自己管理ノードでポッド・ネットワーキングにOCI VCNネイティブ・ポッド・ネットワーキングCNIプラグインを使用する場合は、CLIおよびAPIを使用して自己管理ノードを作成できます。
コンソールを使用して自己管理ノードを作成するには:
- Kubernetes APIプライベート・エンドポイントを含むcloud-initスクリプトと、自己管理ノードを追加する拡張クラスタのbase64エンコードCA証明書を作成します。「自己管理ノードのCloud-initスクリプトの作成」を参照してください。
- 自己管理ノードをホストする新しいコンピュート・インスタンスを作成します:
- ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「インスタンス」をクリックします。
- 新しいコンピュート・インスタンスを作成するには、コンピュート・サービスのドキュメントの手順に従います。新しいコンピュート・インスタンスが拡張クラスタに参加できるようにするには、適切なポリシーが存在する必要があります。「自己管理ノードの動的グループおよびポリシーの作成」を参照してください。
- 「イメージとシェイプ」セクションで、「イメージの変更」をクリックします。
- 「マイ・イメージ」をクリックし、「イメージOCID」オプションを選択してから、使用するOKE Oracle Linux 7 (OL7)またはOracle Linux 8 (OL8)イメージのOCIDを入力します。イメージ要件を参照してください。
- 「拡張オプションの表示」をクリックし、「管理」タブで「cloud-initスクリプトの貼付け」オプションを選択します。
- Kubernetes APIプライベート・エンドポイントおよびbase64でエンコードされたCA証明書を含むcloud-initスクリプトをコピーして、Cloud-initスクリプト・フィールドに貼り付けます。「自己管理ノードのCloud-initスクリプトの作成」を参照してください。
- 「作成」をクリックして、自己管理ノードをホストするコンピュート・インスタンスを作成します。
コンピュート・インスタンスが作成されると、指定したKubernetes APIエンドポイントを使用して、自己管理ノードとしてクラスタに追加されます。
- 自己管理ノードがKubernetesクラスタに追加されたことを確認し、次のように入力してノードの準備状況を確認します:
kubectl get nodes
例:
kubectl get nodes NAME STATUS ROLES AGE VERSION 10.0.103.170 Ready <none> 40m v1.25.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..."}'
- oci Compute instance launchコマンドの
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プラグインの使用」を参照してください。