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 を利用します。
下記の投稿を参考にしました。
API での情報取得例
下記のようなスクリプトを作成してみました。Prism Central で利用されている Karbon の API では、まだ URL に "acs" (Acropolis Container Services)といった文字列が含まれていたりします。
Prism Central へのログイン情報は、別ファイルにしてあります。
スクリプトを実行してみます。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つだけ作成されている状態だと、このような情報が取得できます。
以上。