NTNX>日記

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

Nutanix Kubernetes Engine でクラスタを作成してみる。(karbonctl + JSON)

Nutanix Kubernetes Engine(NKE)の karbonctl による Kubernetes クラスタ作成で、JSON ファイルを使用してみます。

今回の前提

下記のように、Prism Central で NKE を有効化してあります。

karbonctl でのクラスタ作成は、下記のように実行します。

NKE クラスタの JSON ファイル

「karbonctl cluster create」コマンドでは、「-f」オプションで JSON ファイルを指定できます。この JSON ファイルは、karbonctl cluster create を実行したときに生成される JSON ファイルを編集して用意します。

nke-01.json

  • L5: クラスタの名前として nke-01 を指定(デフォルトは nke-cluster)
  • L16, L33: Control Plane / etcd ノード数は1(Development Cluster)
  • L50: Worker ノード数は3(デフォルトは 1)
  • L18, L35, L52, L67: クラスタを作成する Nutanix クラスタを UUID で指定

gist.github.com

JSON ファイルで指定する UUID は、Prism Element、ncli、acli などで確認できます。

Nutanix Cluster の UUID(prism_element_cluster_uuid)は、Prism Element の「設定」→「クラスタ詳細」などから確認できます。

ネットワーク UUID(network_uuid)は、acli などで確認できます。

nutanix@NTNX-ada150bf-A-CVM:192.168.20.42:~$ acli net.list
Network name  Network UUID                          Type      Identifier  Virtual Switch  Subnet
nw-vlan-12    d4cd4cec-8520-449d-8bbd-059da864e743  kBridged  12          vs0             192.168.12.0/24
nw-vlan-20    af6981a6-12ff-4c18-8fbd-a1167e26aee2  kBridged  20          vs0

karbonctl での NKE クラスタ作成(JSON 利用)

karbonctl で JSON ファイルを指定してKubernetes クラスタを作成するには、下記のようにコマンドを実行します。

./karbon/karbonctl cluster create -f <JSON ファイル> --override

コマンドを実行すると、作成されるクラスタの JSON が表示され、確認メッセージが表示されます。このとき「--override」オプションを指定することで、デフォルト値を上書きできます。表示される JSON の内容に、指定した JSON ファイルの内容が含まれていることを確認します。

nutanix@NTNX-192-168-20-15-A-PCVM:~$ ./karbon/karbonctl cluster create -f nke-01.json --override
Please confirm the following configuration before cluster create operation:
{
  "metadata": {
    "api_version": "v1.0.0"
  },
  "name": "nke-01",
  "version": "1.26.8-0",
  "apiserver_sni": null,
  "categories": null,
  "disable_monitoring": true,
  "masters_config": {
    "single_master_config": {},
    "node_pools": [
      {
        "name": "nke-01-master-pool",
        "node_os_version": "ntnx-1.6.1",
        "num_instances": 1,
        "ahv_config": {
          "prism_element_cluster_uuid": "00060d95-43ae-bb50-3641-00505681a7a8",
          "cpu": 8,
          "memory_mib": 8192,
          "disk_mib": 122880,
          "network_uuid": "d4cd4cec-8520-449d-8bbd-059da864e743"
        },
        "gpu_config_list": null
      }
    ]
  },
  "etcd_config": {
    "node_pools": [
      {
        "name": "nke-01-etcd-pool",
        "node_os_version": "ntnx-1.6.1",
        "num_instances": 1,
        "ahv_config": {
          "prism_element_cluster_uuid": "00060d95-43ae-bb50-3641-00505681a7a8",
          "cpu": 4,
          "memory_mib": 8192,
          "disk_mib": 40960,
          "network_uuid": "d4cd4cec-8520-449d-8bbd-059da864e743"
        },
        "gpu_config_list": null
      }
    ]
  },
  "workers_config": {
    "node_pools": [
      {
        "name": "nke-01-worker-pool",
        "node_os_version": "ntnx-1.6.1",
        "num_instances": 3,
        "ahv_config": {
          "prism_element_cluster_uuid": "00060d95-43ae-bb50-3641-00505681a7a8",
          "cpu": 8,
          "memory_mib": 8192,
          "disk_mib": 122880,
          "network_uuid": "d4cd4cec-8520-449d-8bbd-059da864e743"
        },
        "gpu_config_list": null
      }
    ]
  },
  "storage_class_config": {
    "name": "default-storageclass",
    "default_storage_class": true,
    "reclaim_policy": "Delete",
    "volumes_config": {
      "prism_element_cluster_uuid": "00060d95-43ae-bb50-3641-00505681a7a8",
      "storage_container": "default-container-36059869276876",
      "file_system": "ext4"
    }
  },
  "cni_config": {
    "service_ipv4_cidr": "172.19.0.0/16",
    "pod_ipv4_cidr": "172.20.0.0/16",
    "node_cidr_mask_size": 24,
    "calico_config": {
      "ip_pool_configs": [
        {
          "cidr": "172.20.0.0/16"
        }
      ]
    }
  }
}
Do you want to create cluster? Y/[N]:

「Y」を入力して Enter キーを押すと、クラスタ作成が開始されます。

Do you want to create cluster? Y/[N]:Y
Successfully submitted create k8s cluster request

しばらく待つと、NKE によるクラスタが作成されます。

nutanix@NTNX-192-168-20-15-A-PCVM:~$ ./karbon/karbonctl cluster list
Name      UUID                                    IsManagement    Control Plane IPs (VIP)    Version     OS Version    Status      Worker IPs
nke-01    5ff4726f-255e-45b4-7dd4-82cb53413b06    false           192.168.12.114             1.26.8-0    ntnx-1.6.1    kSuccess    192.168.12.116, 192.168.12.127, 192.168.12.111

以上。

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