0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Tanzu Kubernetes Grid v2.4のManagement ClusterとWorkload Clusterを構築する

Last updated at Posted at 2023-10-03

Tanzu Kubernetes Grid(以下TKG)のv2.4が'23/9/28にリリースされた
このメモは、TKG2.4を構築する機会があったので、構築手順を纏めた時のメモ。
TKG2.1とかと比べて大きな変化はないので、主な対象読者は初めてTKGを触る人向けとなる。

なお、今回の検証はUbuntuをBootstrapとして利用するため、Linux環境でのインストール手順となる。
Bootstrapのリソースが貧弱だと構築に失敗するため、メモリは8G以上積んでいることを確認してから進めた方がよい。

準備

Customer ConnectのDownloadページから以下を入手する。

  • Ubuntu 2004 Kubernetes v1.27.5 OVA (PhotonでもOK)
  • kubectl cli v1.27.5 for Linux
  • TKG Carvel Tools for Linux

OVAに関してはvSphere ClientでDeploy OVF Templateから転送済みの状態になっているものとし、コマンド類のファイルもbootstrapに転送済みの状態から開始する。
バイナリについては全て${HOME}/bin以下にインストールするものとし、以下でパスを通しておく。

echo 'export PATH=$PATH:${HOME}/bin' >> ~/.bashrc
. ~/.bashrc

またこちらからTanzu CLIも入手する。

Carvel Toolsのインストール

正直なところ、普通にクラスタを構築する分にはCarvel Toolsをインストールする必要はない。
ただ、入れとくと便利なこともあるので、ここでは一応入れておく。

tar xvzfp tkg-carvel-tools-linux-amd64.tar.gz
gunzip cli/*
install cli/imgpkg-linux-amd64-v0.36.0+vmware.2 ~/bin/imgpkg
install cli/kapp-linux-amd64-v0.55.0+vmware.2 ~/bin/kapp
install cli/kbld-linux-amd64-v0.37.0+vmware.2 ~/bin/kbld
install cli/vendir-linux-amd64-v0.33.1+vmware.2 ~/bin/vendir
install cli/ytt-linux-amd64-v0.45.0+vmware.2 ~/bin/ytt

tanzu CLIのインストール

ファイルを展開して~/bin以下にシンボリックリンクを張る。

tar xvzfp tanzu-cli-linux-amd64.tar.gz
mkdir -p ~/bin/tanzucli
mv v1.0.0/ ~/bin/tanzucli/
ln -s ~/bin/tanzucli/v1.0.0/tanzu-cli-linux_amd64 ~/bin/tanzu

確認する。

$ tanzu version
version: v1.0.0
buildDate: 2023-08-08
sha: 006d0429

次にPluginをインストールする。

tanzu plugin install --group vmware-tkg/default:v2.4.0

途中でGeneral Termsに同意するかと、カスタマーエクスペリエンス向上プログラムに参加するかを聞かれるので、それぞれ回答して先に進む。

最後に補完が聞くようcompletionを入れる。

echo "source <(tanzu completion bash)" >> ~/.bashrc
. ~/.bashrc

kubectlのインストール

ファイルを展開して~/bin以下にシンボリックリンクを張る。

gunzip kubectl-linux-v1.27.5+vmware.1.gz
mkdir -p ~/bin/kubectl-bin/v1.27.5
chmod +x kubectl-linux-v1.27.5+vmware.1 
mv kubectl-linux-v1.27.5+vmware.1 ~/bin/kubectl-bin/v1.27.5
ln -s ~/bin/kubectl-bin/v1.27.5/kubectl-linux-v1.27.5+vmware.1 ~/bin/kubectl

dockerのインストール

以下を実行してインストールする。

sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release -y
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
sudo systemctl restart docker

dockerコマンドが叩けるようにユーザをdockerグループに追加してログインしなおす。

sudo usermod -aG docker $USER
exit

Management Clusterの作成

公式ドキュメントはこちら
ここではUIからインストールを行う。
なお、こちらの記載によると、以下のようなケースではCLIからインストールする必要がある。

  • IPv6やDual-Stackネットワークの利用
  • VSPHERE_STORAGE_POLICY_IDを使ったカスタムストレージポリシーの利用
  • Node IPAMの利用

tanzuコマンドを実行してインストール用のUIを立ち上げる。

tanzu mc create --bind 10.180.81.126:9999 --ui -v9

インストール時の設定についてはTKG2.1の時とほとんど変わっていないので割愛する。
ただ、TKG2.1と比べてAvailability Zone(AZ)が選べるようになっている点は変更点となる。
1696305833561.png

AZに関してはここでは触れないが、利用する際は以下を読むと良い。

Workload Clusterの作成

こちらの公式手順に沿って進める。

Workload Clusterの設定ファイルを作成する。
最初にManagement Clusterの設定ファイルをコピーする。

cd ~/.config/tanzu/tkg/clusterconfigs/
cp gl2rih06fv.yaml workload.yaml

vSphere with Standalone Management Cluster Configuration Filesを見ながら設定していく。
ここでは以下を設定した。

--- gl2rih06fv.yaml	2023-10-03 04:04:47.722003999 +0000
+++ workload.yaml	2023-10-03 04:36:19.790320366 +0000
@@ -1,3 +1,5 @@
+CLUSTER_NAME: tkg24-wc
+NAMESPACE: default
 AVI_CA_DATA_B64: ""
 AVI_CLOUD_NAME: ""
 AVI_CONTROL_PLANE_HA_PROVIDER: "false"
@@ -18,7 +20,7 @@
 AVI_USERNAME: ""
 CLUSTER_ANNOTATIONS: 'description:,location:'
 CLUSTER_CIDR: 100.96.0.0/11
-CLUSTER_PLAN: dev
+CLUSTER_PLAN: prod
 ENABLE_AUDIT_LOGGING: "false"
 ENABLE_CEIP_PARTICIPATION: "false"
 ENABLE_MHC: "false"
@@ -50,8 +52,8 @@
 SERVICE_CIDR: 100.64.0.0/13
 TKG_HTTP_PROXY_ENABLED: "false"
 VSPHERE_CONTROL_PLANE_DISK_GIB: "40"
-VSPHERE_CONTROL_PLANE_ENDPOINT: 10.180.81.249
-VSPHERE_CONTROL_PLANE_MEM_MIB: "16384"
+VSPHERE_CONTROL_PLANE_ENDPOINT: 10.180.81.248
+VSPHERE_CONTROL_PLANE_MEM_MIB: "8192"
 VSPHERE_CONTROL_PLANE_NUM_CPUS: "4"
 VSPHERE_DATACENTER: /vSAN-DC
 VSPHERE_DATASTORE: /vSAN-DC/datastore/vsanDatastore
@@ -64,7 +66,7 @@
 VSPHERE_SSH_AUTHORIZED_KEY: ssh-rsa AAAAB3Nz...
 VSPHERE_TLS_THUMBPRINT: B7:6F:93:7D:B2:4F:F5:52:49:F3:F7:9E:68:53:3B:EB:68:B5:72:D0
 VSPHERE_USERNAME: administrator@vsphere.local
-VSPHERE_WORKER_DISK_GIB: "40"
+VSPHERE_WORKER_DISK_GIB: "100"
 VSPHERE_WORKER_MEM_MIB: "8192"
-VSPHERE_WORKER_NUM_CPUS: "2"
+VSPHERE_WORKER_NUM_CPUS: "4"
 WORKER_ROLLOUT_STRATEGY: ""

auto-apply-generated-clusterclass-based-configuration(plan-basedの設定ファイルをclass-basedのものに自動変換する設定)をtrueにする。

tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration true

Workload Clusterを作成する。

tanzu cl create -f ./workload.yaml -v9

構築後、kubeconfigを取得してコンテキストを切り替える。

tanzu cl kubeconfig get tkg24-wc --admin
kubectl config use-context tkg24-wc-admin@tkg24-wc

無事作成された。

$ kubectl get node
NAME                                         STATUS   ROLES           AGE     VERSION
tkg24-wc-8rxxh-87tzq                         Ready    control-plane   10m     v1.27.5+vmware.1
tkg24-wc-8rxxh-slmgs                         Ready    control-plane   8m29s   v1.27.5+vmware.1
tkg24-wc-8rxxh-vlb67                         Ready    control-plane   6m47s   v1.27.5+vmware.1
tkg24-wc-md-0-nbjzg-85bb5bddd8xxl95h-p5lcz   Ready    <none>          8m54s   v1.27.5+vmware.1
tkg24-wc-md-1-2bw24-5fb7c8dc9xncbpk-d2452    Ready    <none>          8m52s   v1.27.5+vmware.1
tkg24-wc-md-2-t7q5s-5bdc9746d4xhpq9c-dbhjk   Ready    <none>          8m45s   v1.27.5+vmware.1
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?