CAPX(Cluster API Provider Nutanix Cloud Infrastructure)で、Nutanix CE に Kubernetes 環境を構築してみます。今回は、CAPX クラスタ作成で必要なツールをインストールします。
入口はこちら。
前回(CAPX 用の仮想マシン イメージ作成)はこちら。
今回は、前回の作業で利用していた Linux マシンに、CAPX(実際には Cluster API)によるクラスタ作成の前提となるツール群をインストールします。
0. コマンド格納ディレクトリの作成
今回は、RPM ではないコマンドのインストール先として、ホーム ディレクトリ配下に bin ディレクトリを用意します。
# mkdir $HOME/bin
RHEL/CentOS や Oracle Linux では、デフォルトで $HOME/bin が PATH 環境変数に含まれているはずです。このディレクトリが PATH に含まれない場合は、下記のように追記します。
# export PATH=$HOME/bin:$PATH
1. kubectl
kubectl をダウンロードします。今回は CAPX で作成する Workload クラスタの Kubernetes バージョン(v1.26.7)に合わせたのですが、kind の Kubernetes バージョンの方が上(v1.27.3)だったのでそちらに合わせた方がよかったかもしれません。
# curl -LO https://dl.k8s.io/release/v1.26.7/bin/linux/amd64/kubectl
$HOME/bin にインストールします。
# install kubectl $HOME/bin/
kubectl が実行できるようになったことを確認しておきます。
# kubectl version --client --short Flag --short has been deprecated, and will be removed in the future. The --short output will become the default. Client Version: v1.26.7 Kustomize Version: v4.5.7
2. kind
Cluster API の管理 Kubernetes クラスタの作成で利用するので、kind(Kubernetes in Docker)をインストールします。
kind をダウンロードします。
# curl -OL https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-linux-amd64
$HOME/bin にインストールします。
# install kind-linux-amd64 $HOME/bin/kind
kind が実行できるようになったことを確認しておきます。
# kind version kind v0.20.0 go1.20.4 linux/amd64
3. podman
kind は、Docker コンテナ上に Kubernetes を作成するので、コンテナ ランタイムが必要になります。今回は RHEL 8 ベースの Oracle Linux 8 を利用しているので、podman を(Docker のかわりに)インストールしておきます。
podman の RPM をインストールします。
# dnf install podman -y
サービスを起動します。
# systemctl start podman # systemctl enable podman
Podman のバージョンです。
# podman version Client: Podman Engine Version: 4.6.1 API Version: 4.6.1 Go Version: go1.20.6 Built: Wed Oct 25 10:08:43 2023 OS/Arch: linux/amd64
4. clusterctl
Cluster API の CLI である、clusterctl をダウンロードします。
# curl -LO https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.6.0/clusterctl-linux-amd64
$HOME/bin にインストールします。
# install clusterctl-linux-amd64 $HOME/bin/clusterctl
clusterctl が実行できるようになったことを確認しておきます。
# clusterctl version clusterctl version: &version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.0", GitCommit:"14efefeb46dbe8d0cd0f5b7d1718e00ec58fc079", GitTreeState:"clean", BuildDate:"2023-12-05T17:59:05Z", GoVersion:"go1.20.11", Compiler:"gc", Platform:"linux/amd64"}
つづく。