NTNX>日記

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

Nutanix CE 5.18 で Karbon を有効化してみる。(REST API でのクラスタ作成 / 削除編)

Nutanix CE の Karbon で、REST API から Kubernetes を作成 / 削除してみます。

前回と同様、リファレンス にある Karbon API ではなく、Prism Central が利用している API を利用します。

Karbon むけの Kubernetes クラスタ定義

Karbon で作成する Kubernetes クラスタの情報を、JSON 形式のファイルとして用意しておきます。

gist.github.com

パラメータは、下記の投稿でのクラスタ作成と同様のものです。

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 のログインを流用するために下記のようなスクリプトを作成しました。

gist.github.com

Prism Central へのログイン情報を記載したファイルも用意しておきます。

gist.github.com

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 画面でもクラスタが確認できます。

f:id:gowatana:20201212224957p:plain

クラスタの削除

クラスタ削除の API は、DELETE /karbon/acs/k8s/cluster/$cluster_uuid です。

今回は下記のようなスクリプトを作成しました。

gist.github.com

$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"}

以上。

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