NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

NKP の Workload Cluster に Node Pool を追加してみる。(kubectl + YAML)

Nutanix Kubernetes Platform(NKP)v2.12 で作成した Workload Cluster に、nkp create nodepool コマンドによって生成した YAML ファイルを使用してノード プールを追加してみます。

今回の環境

Workload Cluster は、下記のようにダッシュボードか 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 のノードにあわせて自動的に記載されます。

gist.github.com

 

ノード プールの追加(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

以上。

©2024 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。