Nutanix CE の Karbon で、REST API から Kubernetes を作成 / 削除してみます。
前回と同様、リファレンス にある Karbon API ではなく、Prism Central が利用している API を利用します。
Karbon むけの Kubernetes クラスタ定義
Karbon で作成する Kubernetes クラスタの情報を、JSON 形式のファイルとして用意しておきます。
パラメータは、下記の投稿でのクラスタ作成と同様のものです。
JSON で指定している UUID は、Prism Element や ncli / acli などから確認できます。
Nutanix クラスタ(cluster_ref)
nutanix@NTNX-6197a6e0-A-CVM:192.168.20.52:~$ ncli cluster info | grep "Cluster Uuid" Cluster Uuid : 0005af33-0c1d-051c-37dd-1c697a630d37
ネットワーク(vm_network)
nutanix@NTNX-6197a6e0-A-CVM:192.168.20.52:~$ acli net.list Network name Network UUID Type Identifier Subnet nw-vlan-0 67a2b80d-fbaa-4a59-84ab-223a774a615b kBridged 0 nw-vlan-6-ipam df53d23f-066f-4118-a5c4-3bffbd304571 kBridged 6 192.168.6.0/24
OS イメージ(image)
nutanix@NTNX-6197a6e0-A-CVM:192.168.20.52:~$ acli image.list Image name Image type Image UUID karbon-ntnx-0.5 a1d044af-6e31-4a2e-9950-be9f24691dde
クラスタの作成
クラスタを作成する API は、POST /karbon/acs/k8s/cluster です。
前回と同様、Prism v3 API のログインを流用するために下記のようなスクリプトを作成しました。
Prism Central へのログイン情報を記載したファイルも用意しておきます。
Linux で、このスクリプトを実行すると、クラスタが作成されます。実行直後に表示される cluster_uuid は、Kubernetes クラスタごとに採番される UUID です。
$ bash ./create_karbon_k8s.sh ./login.txt ./dev-k8s-01.json {"cluster_uuid":"8b53afcd-0b28-46f7-7f49-718e6cfc60ef","task_uuid":"e025e77b-9cad-4c77-8867-2c541d6fbe54"}
デプロイの進捗は、前回作成したスクリプトで下記のように確認できます。
95% ・・・
$ bash ./get_karbon_k8s.sh ./login.txt | jq '.[] | [.cluster_metadata.name, .cluster_metadata.uuid, .task_type, .task_progress_percent]' [ "dev-k8s-01", "8b53afcd-0b28-46f7-7f49-718e6cfc60ef", "DeployK8s", 95 ]
100%
$ bash ./get_karbon_k8s.sh ./login.txt | jq '.[] | [.cluster_metadata.name, .cluster_metadata.uuid, .task_type, .task_progress_percent]' [ "dev-k8s-01", "8b53afcd-0b28-46f7-7f49-718e6cfc60ef", "DeployK8s", 100 ]
作成されたクラスタは、Prism Central の Karbon 画面でもクラスタが確認できます。
クラスタの削除
クラスタ削除の API は、DELETE /karbon/acs/k8s/cluster/$cluster_uuid です。
今回は下記のようなスクリプトを作成しました。
$cluster_uuid で指定する cluster_uuid は、クラスタ作成時のレスポンスや API によるクラスタ情報取得などで確認できます。下記のように、前回の投稿で作成したスクリプトでも確認できます。
$ bash ./get_karbon_k8s.sh ./login.txt | jq -r '.[].cluster_metadata | [.name, .uuid]' [ "dev-k8s-01", "8b53afcd-0b28-46f7-7f49-718e6cfc60ef" ]
スクリプトを実行して、クラスタを削除します。
$ bash ./delete_karbon_k8s.sh ./login.txt 8b53afcd-0b28-46f7-7f49-718e6cfc60ef {"cluster_uuid":"8b53afcd-0b28-46f7-7f49-718e6cfc60ef","task_uuid":"46af1774-b1e7-421a-aa97-d52e8c52625d"}
以上。