NTNX>日記

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

CAPX(Cluster API Provider Nutanix Cloud Infrastructure)で Kubernetes 環境構築してみる。

この投稿は、Nutanix Advent Calendar 2023 の 13日目です。

adventar.org

 

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   Ready              3h24m   v1.26.7

Pod を起動してみます。

# kubectl --kubeconfig=kubeconfig.capx01 run xmas --rm -it --image=lukaszlach/merry-christmas

 

 

ちなみに、最近では NKE でも Cluster API が利用されつつあるようです。

CAPX で作成された仮想マシンに SSH 接続したい場合は、こちらをどうぞ。

以上。

明日の Nutanix Advent Calendar 2023 は、Nagahamaaan 様です。

 

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