Nutanix Kubernetes Platform(NKP)v2.12 で作成した Workload Cluster に、nkp create nodepool コマンドによって生成した YAML ファイルを使用してノード プールを追加してみます。
今回の環境
Workload Cluster は、下記のようにダッシュボードか CLI から作成しておきます。
- Nutanix Kubernetes Platform(NKP)で Workload Cluster を作成してみる。
- Nutanix Kubernetes Platform(NKP)で Workload Cluster を作成してみる。(nkp CLI)
NKP の Workload Cluster は、「nkpw01」という名前で作成してあります。kubectl では、Management Cluster に接続できるようにしておきます。
[gowatana@lab-nkp-01 ~]$ nkp get clusters -A WORKSPACE NAME KUBECONFIG STATUS kommander-workspace host-cluster kommander-self-attach-kubeconfig Joined nkpw01-8sqds nkpw01 nkpw01-kubeconfig Joined
Cluster API の cluster リソースから見た Kubernetes クラスタです。nkpw01 クラスタは、nkpw01-gtwd6 Namespace に作成されています。
[gowatana@lab-nkp-01 ~]$ kubectl get clusters -A NAMESPACE NAME CLUSTERCLASS PHASE AGE VERSION default nkpm01 nkp-nutanix Provisioned 2d14h v1.29.6 nkpw01-gtwd6 nkpw01 nkp-nutanix Provisioned 18h v1.29.6
Workload Cluster のノード プールは、NKP では「md-0」という名前で作成されています。
[gowatana@lab-nkp-01 ~]$ nkp get nodepools --cluster-name=nkpw01 --namespace=nkpw01-gtwd6 NODEPOOL DESIRED READY KUBERNETES VERSION md-0 1 1 v1.29.6
これは、nkpw01-gtwd6 Namespace の MachineDeployment に紐づいています。
[gowatana@lab-nkp-01 ~]$ kubectl get machinedeployments --namespace=nkpw01-gtwd6 NAME CLUSTER REPLICAS READY UPDATED UNAVAILABLE PHASE AGE VERSION nkpw01-md-0-cjx7p nkpw01 1 1 1 0 Running 18h v1.29.6
Machine リソースの様子です。
[gowatana@lab-nkp-01 ~]$ kubectl get machines --namespace=nkpw01-gtwd6 NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION nkpw01-md-0-cjx7p-mrdhb-vr4wv nkpw01 nkpw01-md-0-cjx7p-mrdhb-vr4wv nutanix://bd5260a7-29c7-485f-a817-156a49a3902b Running 18h v1.29.6 nkpw01-wgc9p-mrh4h nkpw01 nkpw01-wgc9p-mrh4h nutanix://43f4a9a9-1259-402b-aa3e-d8ba7fea9004 Running 18h v1.29.6
YAML ファイルの作成
nkp create nodepool nutanix コマンドを「--dry-run」オプションで実行して、YAML ファイルを生成します。
nkp create nodepool nutanix md-1 \ --cluster-name=nkpw01 \ --namespace=nkpw01-gtwd6 \ --prism-element-cluster=lab-nxce-02 \ --subnets=nw-vlan-12 \ --vm-image=nkp-rocky-9.4-release-1.29.6-20240816215147.qcow2 \ --vcpus=2 \ --memory=2 \ --dry-run \ --output=yaml > nkpw01_md-1.yml
実際に実行すると、下記のようになります。
[gowatana@lab-nkp-01 ~]$ nkp create nodepool nutanix md-1 \ > --cluster-name=nkpw01 \ > --namespace=nkpw01-gtwd6 \ > --prism-element-cluster=lab-nxce-02 \ > --subnets=nw-vlan-12 \ > --vm-image=nkp-rocky-9.4-release-1.29.6-20240816215147.qcow2 \ > --vcpus=2 \ > --memory=2 \ > --dry-run \ > --output=yaml > nkpw01_md-1.yml Generating nkpw01-gtwd6/md-1 nodepool resources
今回の YAML ファイルです。
- ノード プールだけでなく、クラスタ全体の定義が生成されます。
- L125: SSH で接続するための公開鍵が、Workload Cluster のノードにあわせて自動的に記載されます。
ノード プールの追加(YAML ファイルの適用)
生成した YAML ファイルを、kubectl で Management Cluster に適用します。
[gowatana@lab-nkp-01 ~]$ kubectl apply -f nkpw01_md-1.yml Warning: resource clusters/nkpw01 is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically. cluster.cluster.x-k8s.io/nkpw01 configured
少し待つと、ノード プールが作成されます。作成されたノード プールの情報です。
[gowatana@lab-nkp-01 ~]$ nkp get nodepools --cluster-name=nkpw01 --namespace=nkpw01-gtwd6 NODEPOOL DESIRED READY KUBERNETES VERSION md-0 1 1 v1.29.6 md-1 1 1 v1.29.6
作成された MachineDeployment の情報です。
[gowatana@lab-nkp-01 ~]$ kubectl get machinedeployments --namespace=nkpw01-gtwd6 NAME CLUSTER REPLICAS READY UPDATED UNAVAILABLE PHASE AGE VERSION nkpw01-md-0-cjx7p nkpw01 1 1 1 0 Running 18h v1.29.6 nkpw01-md-1-qdrvc nkpw01 1 1 1 0 Running 3m40s v1.29.6
作成された Machine(仮想マシンに紐づくリソース)の様子です。
[gowatana@lab-nkp-01 ~]$ kubectl get machines --namespace=nkpw01-gtwd6 NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION nkpw01-md-0-cjx7p-mrdhb-vr4wv nkpw01 nkpw01-md-0-cjx7p-mrdhb-vr4wv nutanix://bd5260a7-29c7-485f-a817-156a49a3902b Running 18h v1.29.6 nkpw01-md-1-qdrvc-9nwds-758qz nkpw01 nkpw01-md-1-qdrvc-9nwds-758qz nutanix://f3d7d14f-48eb-4bd9-a7ae-0f3cea99579a Running 3m50s v1.29.6 nkpw01-wgc9p-mrh4h nkpw01 nkpw01-wgc9p-mrh4h nutanix://43f4a9a9-1259-402b-aa3e-d8ba7fea9004 Running 18h v1.29.6
Workload Cluster 側での、ノードの一覧です。
[gowatana@lab-nkp-01 ~]$ kubectl get nodes --kubeconfig=nkpw01-kubeconfig.yaml NAME STATUS ROLES AGE VERSION nkpw01-md-0-cjx7p-mrdhb-vr4wv Ready < none > 18h v1.29.6 nkpw01-md-1-qdrvc-9nwds-758qz Ready < none > 3m38s v1.29.6 nkpw01-wgc9p-mrh4h Ready control-plane 18h v1.29.6
削除時の注意点
今回使用した YAML ファイルを指定して kubectl delete を実行すると、下記のように Workload Cluster ごと削除してしまいます。
[gowatana@lab-nkp-01 ~]$ kubectl delete -f nkpw01_md-1.yml cluster.cluster.x-k8s.io "nkpw01" deleted
ノード プールのみを削除する場合は、nkp delete nodepool で削除します。
[gowatana@lab-nkp-01 ~]$ nkp delete nodepool md-1 --cluster-name=nkpw01 --namespace=nkpw01-gtwd6 ✓ Deleting nkpw01-gtwd6/md-1 nodepool resources
以上。