NTNX>日記

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

Nutanix CE 5.18 で Karbon を有効化してみる。(REST API での情報確認編)

Nutanix CE の Karbon で作成した Kubernetes の様子を、REST API から確認してみます。今回も、情報を表示してみるクラスタは以前の投稿(下記)で作成したものです。

クライアント環境

Linux から、curl コマンドを実行します。

$ cat /etc/oracle-release
Oracle Linux Server release 7.9
$ curl --version
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.44 zlib/1.2.7 libidn/1.28 libssh2/1.8.0
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets

jq コマンドも利用します。

$ jq --version
jq-1.5

利用する API

API リファレンスに Karbon API の説明がありますが、なぜかこの API はうまく利用できませんでした。

https://www.nutanix.dev/reference/karbon/

そこで、今回は Prism Central から実行されている API を使用しています。

まず、Prism の v3 API でクラスタの情報を取得して、その際の Cookie を流用して Prism Central で利用している Karbon の API を利用します。

下記の投稿を参考にしました。

next.nutanix.com

API での情報取得例

下記のようなスクリプトを作成してみました。Prism Central で利用されている Karbon の API では、まだ URL に "acs" (Acropolis Container Services)といった文字列が含まれていたりします。

gist.github.com

Prism Central へのログイン情報は、別ファイルにしてあります。

gist.github.com

スクリプトを実行してみます。JSON 形式で Karbon で作成した Kubernetes クラスタの情報が取得できます。

$ bash ./get_karbon_k8s.sh ./login.txt
[{"cluster_metadata":{"addons_config":{"logging_config":{"state":"Enabled","storage_size_mib":32768,"version":"1.0.0"}},"etcd_config":{"name":"dev-k8s-01","nodes":[{"name":"karbon-dev-k8s-01-7f7f5b-etcd-0","node_pool_name":"dev-k8s-01-7f7f5b-etcd","resource_config":{"cpu":4,"disk_mib":40960,"image":"a1d044af-6e31-4a2e-9950-be9f24691dde","ip_address":"192.168.6.183","memory_mib":8192},"uuid":"337650ea-8230-491a-bd08-ab5e13e15bf1"}],"num_instances":1},"k8s_config":{"fqdn":"cluster.local","master_config":{"deployment_type":"single","external_ip":"192.168.6.130"},"masters":[{"name":"karbon-dev-k8s-01-bbfdf3-k8s-master-0","node_pool_name":"dev-k8s-01-bbfdf3-k8s-master","resource_config":{"cpu":2,"disk_mib":122880,"image":"ntnx-0.5","ip_address":"192.168.6.130","memory_mib":4096},"uuid":"62986aeb-a679-49cc-b192-143aae92b9c9"}],"network_cidr":"172.20.0.0/16","network_subnet_len":24,"os_flavor":"centos7.5.1804","service_cluster_ip_range":"172.19.0.0/16","version":"v1.16.8","workers":[{"health":"Healthy","name":"karbon-dev-k8s-01-bbfdf3-k8s-worker-0","node_pool_name":"dev-k8s-01-bbfdf3-k8s-worker","resource_config":{"cpu":4,"disk_mib":122880,"image":"ntnx-0.5","ip_address":"192.168.6.153","memory_mib":8192},"uuid":"99a38501-659c-4bf9-9321-3220ab7c4438"}]},"name":"dev-k8s-01","uuid":"bbfdf33c-c8c7-401c-4242-13c18f625234"},"task_progress_message":"Kubernetes Cluster deployment successful","task_progress_percent":100,"task_status":3,"task_type":"DeployK8s","task_uuid":"d28fa971-12bf-48b5-a6c0-b8ce19c88249"}]

取得した JSON を jq コマンドで整形してみました。

$ bash ./get_karbon_k8s.sh ./login.txt | jq . > karbon_k8s_cluster_list.json

「dev-k8s-01」という Kubernetes クラスタが 1つだけ作成されている状態だと、このような情報が取得できます。

gist.github.com

以上。

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