この投稿は、Nutanix Advent Calendar 2023 の 13日目です。
Nutanix で簡単に Kubernetes クラスタを用意するには、Nutanix Kubernetes Engine(NKE)を利用すると思います。しかし自宅ラボのシングル ノード Nutanix CE マシンだと、1つの NKE クラスタを作成するのもリソース的に難しかったので、ためしに Cluster API Provider Nutanix Cloud Infrastructure(CAPX)で Kubernetes クラスタを作成してみます。
CAPX は、Cluster API の Nutanix AHV クラスタ用プロバイダです。Cluster API では、Kubernetes クラスタのライフサイクル管理のために Kubernetes クラスタを利用する仕組みとなっていて、下記の 2種類の Kubernetes クラスタを利用します。
- 管理クラスタ: Kubernetes 管理用 Kubernetes
- ワークロード クラスタ: ふつうに使う用の Kubernetes
下記で紹介されている手順を参考に、実際に CAPX による Kubernetes クラスタを作成してみます。
今回の自宅ラボでの構築イメージは下記のようになります。
クリスマス感を増すために、GPTs で NTNX バイブル君を作成してみた時に偶然 ChatGPT で生成された天使風 smzksts さんを配置してみました。
手順の流れです。
1) 仮想マシン イメージの用意
CAPX では、AHV 上に仮想マシンによる Kubernete クラスタを作成するので、まずは CAPX 用の仮想マシン イメージを用意します。
2) CAPX を利用するためのツールをインストール
CAPX では、clusterctl という CLI を利用します。また、管理クラスタとして kind(Kubernetes in Docker)を利用します。
そこで準備として、必要となるツール群をインストールしておきます。
3) CAPX の 管理クラスタ & ワークロード クラスタの作成
kind 上の管理クラスタと、AHV 上の仮想マシンのワークロード クラスタを作成してみます。
4) 動作確認
クリスマスっぽい動作確認には、下記をどうぞ。
CAPX の、ワークロード クラスタです。
# kubectl get nutanixcluster NAME CONTROLPLANEENDPOINT READY capx01 192.168.12.201 true
Cluster API の clusterctl を利用して、kubeconfig を取得しておきます。
# clusterctl get kubeconfig capx01 > kubeconfig.capx01
CAPX のワークロード クラスタのノードです。
# kubectl --kubeconfig=kubeconfig.capx01 get nodes NAME STATUS ROLES AGE VERSION capx01-kcp-tpwwc Ready control-plane 3h26m v1.26.7 capx01-wmd-x5fbn-jgwnt Ready3h24m v1.26.7
Pod を起動してみます。
# kubectl --kubeconfig=kubeconfig.capx01 run xmas --rm -it --image=lukaszlach/merry-christmas
CAPX にて pic.twitter.com/zUu2XPS2up
— Go Watanabe (@gowatana) 2023年12月13日
ちなみに、最近では NKE でも Cluster API が利用されつつあるようです。
CAPX で作成された仮想マシンに SSH 接続したい場合は、こちらをどうぞ。
以上。
明日の Nutanix Advent Calendar 2023 は、Nagahamaaan 様です。