NTNX>日記

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

Nutanix Kubernetes Platform(NKP)で Workload Cluster を作成してみる。

Nutanix Kubernetes Platform(NKP)v2.12 の Management Cluster のダッシュボードから、Kubernetes クラスタ(Managed Cluster / Workload Cluster)を作成してみます。

今回の環境

NKP の Management Cluster は、下記のように構築してあります。

作業前に Prism Central / Prism Element で、まだ仮想マシンが起動できそうなことを確認しておきます。

今回作成する予定の仮想マシン リソースは下記です。

  • Control Plane: 1ノード(CPU 2、メモリ 4GB)
  • Worker: 1ノード(CPU 2、メモリ 2GB)

Workload Cluster の作成

Management Cluster のダッシュボードの右上にある、「Create Cluster」をクリックします。

「Create Cluster」を開きます。

Workload Cluster のパラメータを入力しつつ、画面を下にスクロールしていきます。まずは、作成するクラスタの名前を入力します。

  • Cluster Name: nkpw01

SSH 接続する OS ユーザー名と、公開鍵を入力します。

  • SSH Username: nutanix
  • SSH Public Key: (ssh-keygen などで作成した公開鍵を入力する)

Control Plane のパラメータを入力します。

  • Nutanix  AOS Cluster: lab-nxce-02 ※Nutanix クラスタを選択する。
  • Subnet: nw-vlan-12
  • OS Image: nkp-rocky-9.4-release-1.29.6-20240816215147.qcow2

Control Plane の、残りのパラメータを入力します。ノード数やリソース割り当ては、あえてラボ環境むけにデフォルト値より下げています。

  • Control Plane Endpoint IP: 192.168.12.205
  • Control Plane Node Count: 3 → 1
  • CPU Per Node (vCPU): 4 → 2
  • Memory Per Node (GiB): 16 → 4
  • Disk Size Per Node (GiB): 80

Worker Node Pool のパラメータを入力します。こちらも、ノード数やリソース割り当てをラボ環境むけにデフォルト値より下げています。

  • Nutanix  AOS Cluster: lab-nxce-02 ※Nutanix クラスタを選択する。
  • Subnet: nw-vlan-12
  • OS Image: nkp-rocky-9.4-release-1.29.6-20240816215147.qcow2
  • Worker Node Count: 4 → 1
  • CPU Per Node (vCPU): 8 → 2
  • Memory Per Node (GiB): 32 → 2
  • Disk Size Per Node (GiB): 80

ストレージと、ネットワークのパラメータを指定します。

  • Nutanix Storage Container: default-container-~
  • Pod Network: 172.16.0.0/16
    ※ラボ環境と競合するので、デフォルトの 192.168.0.0/16 から変更した。
  • Kubernetes Service Load Balancer Starting IP: 192.168.12.206
  • Kubernetes Service Load Balancer Ending IP: 192.168.12.209

Image Registry はデフォルトのまま、画面右上の「Create」をクリックします。

少し待つと Kubernetes クラスタの作成が完了し、「Active」と表示されます。

 

Management Cluster(nkpm01)に kubectl で接続すると、追加作成された Namespace に Worker Cluster(nkpw01)のリソースが作成されています。

[root@lab-nkp-01 ~]# kubectl get cluster -A --kubeconfig=nkpm01.conf
NAMESPACE            NAME     CLUSTERCLASS   PHASE         AGE     VERSION
default              nkpm01   nkp-nutanix    Provisioned   142m    v1.29.6
nkpw01-bs2fn-6whzh   nkpw01   nkp-nutanix    Provisioned   5m29s   v1.29.6

Machine リソースも、Workload Cluster ノードの仮想マシンが追加されています。

[root@lab-nkp-01 ~]#
[root@lab-nkp-01 ~]# kubectl get machine -A --kubeconfig=nkpm01.conf
NAMESPACE            NAME                            CLUSTER   NODENAME                        PROVIDERID                                       PHASE     AGE     VERSION
default              nkpm01-dh72h-sxwm5              nkpm01    nkpm01-dh72h-sxwm5              nutanix://e9a3bf45-533e-41cc-8485-b64a18c98271   Running   142m    v1.29.6
default              nkpm01-md-0-td65c-k9h78-d7z6g   nkpm01    nkpm01-md-0-td65c-k9h78-d7z6g   nutanix://0b7b7493-d218-44c4-8680-51cdce0b26cf   Running   142m    v1.29.6
default              nkpm01-md-0-td65c-k9h78-m2dnk   nkpm01    nkpm01-md-0-td65c-k9h78-m2dnk   nutanix://1f18809c-12fb-4c3c-bf43-51968974cae5   Running   142m    v1.29.6
nkpw01-bs2fn-6whzh   nkpw01-9rvdn-rg558              nkpw01    nkpw01-9rvdn-rg558              nutanix://a7f9610c-eb5c-40a8-9989-e081f19d5ce3   Running   5m34s   v1.29.6
nkpw01-bs2fn-6whzh   nkpw01-md-0-l62q2-rntwm-8dqhq   nkpw01    nkpw01-md-0-l62q2-rntwm-8dqhq   nutanix://1f4d2261-4b58-4f89-aca1-a2a0ffa13daf   Running   5m38s   v1.29.6

Prism Element でも、仮想マシンが 2台作成されことが確認できます。

作成したクラスタへの接続

作成したクラスタ(nkpw01)のパネル右下のボタン →「Download kubeconfig」をクリックして、kubeconfig ファイルをダウンロードします。

  • ファイル: nkpw01-kubeconfig.yaml

kubectl を実行するマシンに、kubeconfig ファイルを配置します。kubeconfig ファイルの内容は、下記のようになっています。

[root@lab-nkp-01 ~]# kubectl --kubeconfig $(pwd)/nkpw01-kubeconfig.yaml config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.12.205:6443
  name: nkpw01
contexts:
- context:
    cluster: nkpw01
    user: nkpw01-admin
  name: nkpw01-admin@nkpw01
current-context: nkpw01-admin@nkpw01
kind: Config
preferences: {}
users:
- name: nkpw01-admin
  user:
    client-certificate-data: DATA+OMITTED
    client-key-data: DATA+OMITTED

Kubernetes クラスタに接続できました。

[root@lab-nkp-01 ~]# kubectl --kubeconfig $(pwd)/nkpw01-kubeconfig.yaml get nodes -o wide
NAME                            STATUS   ROLES           AGE   VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE                      KERNEL-VERSION                 CONTAINER-RUNTIME
nkpw01-9rvdn-rg558              Ready    control-plane   72m   v1.29.6   192.168.12.163   <none>        Rocky Linux 9.4 (Blue Onyx)   5.14.0-427.31.1.el9_4.x86_64   containerd://1.6.33-d2iq.1
nkpw01-md-0-l62q2-rntwm-8dqhq   Ready              70m   v1.29.6   192.168.12.183   <none>        Rocky Linux 9.4 (Blue Onyx)   5.14.0-427.31.1.el9_4.x86_64   containerd://1.6.33-d2iq.1

Workload Cluster は、Management Cluster よりもだいぶ Pod が少なめです。

[root@lab-nkp-01 ~]# kubectl --kubeconfig $(pwd)/nkpw01-kubeconfig.yaml get pod -A
NAMESPACE                NAME                                                READY   STATUS        RESTARTS      AGE
cert-manager             cert-manager-556c9f47d-r9b8k                        1/1     Running       0             20m
cert-manager             cert-manager-cainjector-57d8d7ff64-78x2q            1/1     Running       0             20m
cert-manager             cert-manager-webhook-844cfb8858-c7j7w               1/1     Running       0             20m
kommander-flux           helm-controller-dc4455cd5-q5gdw                     0/1     Pending       0             20m
kommander-flux           kustomize-controller-755bbdfc55-tq76x               1/1     Running       0             20m
kommander-flux           notification-controller-86c44d47f9-2bcr7            0/1     Terminating   0             53m
kommander-flux           notification-controller-86c44d47f9-2nbzj            1/1     Running       0             20m
kommander-flux           prereq-wait-nkpw01-bs2fn-6whzh-rmzcs-8m5s9          1/1     Running       0             20m
kommander-flux           source-controller-68bc9cbf4d-d6x46                  1/1     Running       0             20m
kube-system              cilium-cl4zq                                        1/1     Running       0             72m
kube-system              cilium-gscgf                                        1/1     Running       0             73m
kube-system              cilium-operator-58c5d5d6d-cpqz2                     1/1     Running       1 (65m ago)   73m
kube-system              cilium-operator-58c5d5d6d-nlbj7                     1/1     Running       0             73m
kube-system              coredns-76f75df574-hbckr                            1/1     Running       0             73m
kube-system              coredns-76f75df574-w9cdx                            1/1     Running       0             73m
kube-system              etcd-nkpw01-9rvdn-rg558                             1/1     Running       0             73m
kube-system              kube-apiserver-nkpw01-9rvdn-rg558                   1/1     Running       0             73m
kube-system              kube-controller-manager-nkpw01-9rvdn-rg558          1/1     Running       0             73m
kube-system              kube-proxy-hllm6                                    1/1     Running       0             72m
kube-system              kube-proxy-jgk9w                                    1/1     Running       0             73m
kube-system              kube-scheduler-nkpw01-9rvdn-rg558                   1/1     Running       0             73m
kube-system              kube-vip-nkpw01-9rvdn-rg558                         1/1     Running       0             71m
kube-system              nutanix-cloud-controller-manager-598b4c7669-v5sxn   1/1     Running       1 (72m ago)   73m
kube-system              snapshot-controller-5c7f9fc58-kv646                 1/1     Running       0             73m
metallb-system           metallb-controller-94f95d674-grtwn                  1/1     Running       0             73m
metallb-system           metallb-speaker-s22rt                               4/4     Running       0             72m
metallb-system           metallb-speaker-tfppk                               4/4     Running       0             3m20s
node-feature-discovery   node-feature-discovery-gc-7f54d58d99-7v6ww          1/1     Running       0             73m
node-feature-discovery   node-feature-discovery-master-ccf75997b-846kw       1/1     Running       0             73m
node-feature-discovery   node-feature-discovery-worker-v5wj6                 1/1     Running       0             72m
node-feature-discovery   node-feature-discovery-worker-wnw9x                 0/1     Running       0             71m
ntnx-system              nutanix-csi-controller-754fcf5f85-4vqbg             7/7     Running       0             40m
ntnx-system              nutanix-csi-controller-754fcf5f85-hjkqm             7/7     Running       2 (69m ago)   69m
ntnx-system              nutanix-csi-node-k6pr7                              3/3     Running       1 (69m ago)   69m
ntnx-system              nutanix-csi-node-qt4r6                              3/3     Running       0             2m50s

以上。

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