Nutanix Kubernetes Platform(NKP)v2.12 で作成した Workload Cluster に、ノード プールを追加してみます。
今回の内容です。
今回の環境
NKP の Workload Cluster は、下記のように作成してあります。
Workload Cluster は、「nkpw01」という名前で作成してあります。
[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
作成されている Namespace は、「nkpw01-gtwd6」です。
[gowatana@lab-nkp-01 ~]$ kubectl get cluster -A NAMESPACE NAME CLUSTERCLASS PHASE AGE VERSION default nkpm01 nkp-nutanix Provisioned 43h v1.29.6 nkpw01-gtwd6 nkpw01 nkp-nutanix Provisioned 9m39s v1.29.6
この Workload Cluster は、Control Plane 1台、Worker 1台で構成されています。
[gowatana@lab-nkp-01 ~]$ kubectl get nodes --kubeconfig=nkpw01-kubeconfig.yaml NAME STATUS ROLES AGE VERSION nkpw01-md-0-cjx7p-mrdhb-vr4wv Ready <none> 8m33s v1.29.6 nkpw01-wgc9p-mrh4h Ready control-plane 10m v1.29.6
Worker は、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
ノード プールの作成
nkp CLI で、ノード プール「md-1」を追加作成してみます。
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
実際に実行すると、下記のようになります。
[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 Generating nkpw01-gtwd6/md-1 nodepool resources cluster.cluster.x-k8s.io/nkpw01 created
コマンドの実行完了と、ノード プールでのノード作成処理は非同期です。
[gowatana@lab-nkp-01 ~]$ nkp get nodepool --cluster-name=nkpw01 --namespace=nkpw01-gtwd6 NODEPOOL DESIRED READY KUBERNETES VERSION md-0 1 1 v1.29.6 md-1 1 0 v1.29.6
ノード プールは、Cluster API の MachineDeployment で仮想マシンを作成します。
[gowatana@lab-nkp-01 ~]$ kubectl get machinedeployments.cluster.x-k8s.io --namespace=nkpw01-gtwd6 NAME CLUSTER REPLICAS READY UPDATED UNAVAILABLE PHASE AGE VERSION nkpw01-md-0-cjx7p nkpw01 1 1 1 0 Running 40m v1.29.6 nkpw01-md-1-brshf nkpw01 1 1 1 ScalingUp 85s v1.29.6
仮想マシンが作成されると、下記のようになります。
[gowatana@lab-nkp-01 ~]$ kubectl get machinedeployments.cluster.x-k8s.io --namespace=nkpw01-gtwd6 NAME CLUSTER REPLICAS READY UPDATED UNAVAILABLE PHASE AGE VERSION nkpw01-md-0-cjx7p nkpw01 1 1 1 0 Running 41m v1.29.6 nkpw01-md-1-brshf nkpw01 1 1 1 0 Running 2m41s v1.29.6
ちなみに MachineDeployment は、md に省略できます。
[gowatana@lab-nkp-01 ~]$ kubectl get md --namespace=nkpw01-gtwd6 NAME CLUSTER REPLICAS READY UPDATED UNAVAILABLE PHASE AGE VERSION nkpw01-md-0-cjx7p nkpw01 1 1 1 0 Running 41m v1.29.6 nkpw01-md-1-brshf nkpw01 1 1 1 0 Running 2m52s v1.29.6
仮想マシンは、Machine リソースで確認できます。
[gowatana@lab-nkp-01 ~]$ kubectl get machine --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 42m v1.29.6 nkpw01-md-1-brshf-jj9dk-rd9pp nkpw01 nkpw01-md-1-brshf-jj9dk-rd9pp nutanix://cbba2fbd-6d93-49c1-bb68-5480cdb344fd Running 3m39s v1.29.6 nkpw01-wgc9p-mrh4h nkpw01 nkpw01-wgc9p-mrh4h nutanix://43f4a9a9-1259-402b-aa3e-d8ba7fea9004 Running 42m v1.29.6
AHV 独自の、NutanixMachine リソースもあります。
[gowatana@lab-nkp-01 ~]$ kubectl get nutanixmachine --namespace=nkpw01-gtwd6 NAME ADDRESS READY PROVIDERID nkpw01-md-0-cjx7p-mrdhb-vr4wv 192.168.12.168 true nutanix://bd5260a7-29c7-485f-a817-156a49a3902b nkpw01-md-1-brshf-jj9dk-rd9pp 192.168.12.154 true nutanix://cbba2fbd-6d93-49c1-bb68-5480cdb344fd nkpw01-wgc9p-mrh4h 192.168.12.181 true nutanix://43f4a9a9-1259-402b-aa3e-d8ba7fea9004
仮想マシン作成が完了したノード プールを、nkp CLI で確認した様子です。
[gowatana@lab-nkp-01 ~]$ nkp get nodepool --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
Kubernetes ノードは、3台構成(Worker が2台)になりました。
[gowatana@lab-nkp-01 ~]$ kubectl get nodes --kubeconfig=nkpw01-kubeconfig.yaml NAME STATUS ROLES AGE VERSION nkpw01-md-0-cjx7p-mrdhb-vr4wv Ready <none> 41m v1.29.6 nkpw01-md-1-brshf-jj9dk-rd9pp Ready <none> 4m13s v1.29.6 nkpw01-wgc9p-mrh4h Ready control-plane 43m v1.29.6
ノード プールの削除
ノード プールを削除する場合は、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
すぐに、ノード プール(と対応する仮想マシン)は削除されます。
[gowatana@lab-nkp-01 ~]$ nkp get nodepool --cluster-name=nkpw01 --namespace=nkpw01-gtwd6 NODEPOOL DESIRED READY KUBERNETES VERSION md-0 1 1 v1.29.6
以上。