Tanzu Kubernetes Grid 2.1.0と2.1.1を構築してみました。

ITのブログ

概要

Tanzu Kubernetes Grid 2.1.0のスタンドアロン管理クラスタを構築してみました。Boot Strapマシンの作成については、公式マニュアルが詳細に記載されているので、そちらを見ることをお勧めします。LDAPについては記載していますが、上手く動作しないため、参考にしないようにお願いします。

環境

#ソフトウェアバージョンvCPUメモリディスク備考
1VMware ESXi8.082
2vCenter Appliance8.0212GBdefault値
3Rockey Linux(bootstrap)9.126GB100GB・パッケージは最小限のインストール
4Tanzu CLI0.28.0/0.28.1TKG 2.1.0/2.1.1
5kubectl1.24.9/1.24.10

前提

  • ESXi/Rockey Linuxのインストールされていることを前提とし、手順は省略します。
  • vCenter Serverの以下の設定されていることを前提とし、手順は省略します。
    • vCenver Server Applianceのデプロイ
    • データセンターの作成
    • ホストの追加
  • TanzuCLI/TKGのOVAをダウンロードする手順は省略します。

手順

ブートストラップマシンの構築

1.リポジトリ登録の前提パッケージインストール

yum install -y yum-utils

2.dockerのリポジトリを登録

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3.dockerのインストール

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

4.dockerの起動及び自動起動設定

systemctl enable --now docker

5.カーネルパラメータの変更

sysctl net/netfilter/nf_conntrack_max=131072

6.Tanzu CLIを配置するディレクトリを作成

mkdir /tanzu

7.Tanzu CLIのアップロード

8.Tanzu CLIの展開

tar -xvf tanzu-cli-bundle-linux-amd64.tar.gz

9.ディレクトリの移動

cd cli

10.Tanzu CLIのインストール

■2.1.0
install core/v0.28.0/tanzu-core-linux_amd64 /usr/local/bin/tanzu

■2.1.1
install core/v0.28.1/tanzu-core-linux_amd64 /usr/local/bin/tanzu

11.Tanzu CLIの初期化

tanzu init

11.Tanzu CLIのバージョン確認

tanzu version

12.Tanzu CLIのプラグインのインストール

tanzu plugin sync

13.Tanzu CLIのプラグインの確認

tanzu plugin list

14.kubectlのアップロード

15.ディレクトリの移動

cd ./../

16.kubectlの展開

■2.1.0
gunzip kubectl-linux-v1.24.9+vmware.1.gz

■2.1.1
gunzip kubectl-linux-v1.24.10+vmware.1.gz

17.kubectlのパーミッションの変更

■2.1.0
chmod ugo+x kubectl-linux-v1.24.9+vmware.1

■2.1.1
chmod ugo+x kubectl-linux-v1.24.10+vmware.1

18.kubectlのインストール

■2.1.0
install kubectl-linux-v1.24.9+vmware.1 /usr/local/bin/kubectl

■2.1.1
install kubectl-linux-v1.24.10+vmware.1 /usr/local/bin/kubectl

19.kubectlのバージョン確認

kubectl version

20.ディレクトリの移動

cd cli

21.yttのインストール

gunzip ytt-linux-amd64-v0.43.1+vmware.1.gz
chmod ugo+x ytt-linux-amd64-v0.43.1+vmware.1
mv ./ytt-linux-amd64-v0.43.1+vmware.1 /usr/local/bin/ytt

22.kappのインストール

gunzip kapp-linux-amd64-v0.53.2+vmware.1.gz
chmod ugo+x kapp-linux-amd64-v0.53.2+vmware.1
mv ./kapp-linux-amd64-v0.53.2+vmware.1 /usr/local/bin/kapp
kapp --version

23.kbldのインストール

gunzip kbld-linux-amd64-v0.35.1+vmware.1.gz
chmod ugo+x kbld-linux-amd64-v0.35.1+vmware.1
mv ./kbld-linux-amd64-v0.35.1+vmware.1 /usr/local/bin/kbld
kbld --version

24.imgpkgのインストール

gunzip imgpkg-linux-amd64-v0.31.1+vmware.1.gz
chmod ugo+x imgpkg-linux-amd64-v0.31.1+vmware.1
mv ./imgpkg-linux-amd64-v0.31.1+vmware.1 /usr/local/bin/imgpkg
imgpkg --version

25.SSHキーの作成(対話式の個所は全てEnterを押下する。)

ssh-keygen -t rsa -b 4096 -C "email@example.com"

26.ssh-agentの起動

eval `ssh-agent`

27.sshキーの追加

ssh-add /root/.ssh/id_rsa

28.sshキー登録の確認

ssh-add -l

ベースイメージのインポート

1.vSphere Clientを開く
2.ESXiホストのインベントリを右クリックし、「OVFテンプレートのデプロイ」をクリックする。
3.「ローカルファイル」をチェックし、「ファイルのアップロード」をクリックする。
4.ベースイメージを選択し、「開く」をクリックする。
5.「OVFテンプレートの選択」画面で「次へ」をクリックする。
6.配置先を選択して、「次へ」をクリックする。
7.配置先のESXiを選択して、「次へ」をクリックする。
8.「詳細の確認」画面は、「次へ」をクリックする。
9.「使用許諾契約書」画面は、「すべての使用許諾契約書に同意します。」にチェックを入れ、「次へ」をクリックする。
10.「データストア」を選択し、必要に応じて、ディスクフォーマットを変更して、「次へ」をクリックする。
11.「ネットワークの選択」画面は必要に応じてポートグループを変更して「次へ」をクリックする。
12.「設定の確認」画面は「完了」をクリックする。
13.OVFテンプレートのデプロイが完了した後、デプロイされたVMを右クリックして「テンプレート」-「テンプレートへ変換」をクリックする。
14.「変換の確認」画面は「はい」をクリックする。
15.「仮想マシンおよびテンプレート」画面を開く。
16.クラスタまたはホストを右クリックし、「新規フォルダ」-「新規仮想マシンおよびテンプレートフォルダ」をクリックする。
17.「新規フォルダ」画面で「tanzu」と入力し、「OK」をクリックする。
18.必要に応じて、ブートストラップマシンをテンプレート等にする。

Management Clusterの作成

1.firewalldの無効化

systemctl disable --now firewalld

2.ブートストラップマシンでインストーラーUIを起動する。

tanzu mc create -u -b <IPアドレス>:8080

3.Webブラウザで「http://<IPアドレス>:8080」に接続する。
4.「VMware vSphere」の「DEPLOY」をクリックする。
5.「IaaS Provider」画面で以下を入力し、「CONNECT」をクリックする。

#設定項目パラメータ
1VCENTER SERVER<vCenter ServerのIPアドレス>
2USERNAME<vCenter Serverのユーザ>
例:administrator@vsphere.local
3PASSWORD<パスワードを入力>
4Disable Verificationチェック有

6.「vSphere 8.0.0 Environment Detected」画面で「DEPLOY TKG MANAGEMENT CLUSTER」をクリックする。
7.「SSH PUBLIC KEY」に作成したSSHキーを入力し、「NEXT」をクリックする。
8.Management Cluster Settingsは以下のパラメータを入力し、「NEXT」をクリックする。

#設定項目パラメータ
1Management Cluster SettingsDevelopment
2INSTANCE TYPEsmall
3MANAGEMENT CLUSTER NAME (OPTIONAL) <クラスタの名前>※1
例:tkg-essential
4MACHINE HEALTH CHECKSチェック無
5CONTROL PLANE ENDPOINT PROVIDER NSX Advanced Load Balancer
6CONTROL PLANE ENDPOINT (OPTIONAL) <空白>
7WORKER NODE INSTANCE TYPE Small
8ACTIVATE AUDIT LOGGING チェック無
9CONTROLLER HOST<NSX ALBのIPアドレス>
10USERNAMEadmin
11PASSWORD<NSX ALBのパスワードを入力>
12CONTROLLER CERTIFICATE AUTHORITY※2
※1 NSX ALBを使う場合、このパラメータを入力しないとエラーが出力される。
※2 証明書はNSX ALBに接続し、「テンプレート」-「セキュリティ」-「SSL/TLS 証明書」を開き、「エクスポート」の画面から証明書をクリップボードにコピーする。

9.「VERIFIED」をクリックし、エラーが表示されないことを確認し、以下パラメータを入力して「REVIEW CONFIGURATION」をクリックする。

#設定項目パラメータ
1CLOUD NAMEDefault-Cloud
2SERVICE ENGINE GROUP NAMEDefault-Group
3WORKLOAD CLUSTER – DATA PLANE VIP NETWORK NAME<NSX ALBのネットワークを指定>
例:tkgnetwork
4WORKLOAD CLUSTER – DATA PLANE VIP NETWORK CIDR<ネットワークのIPアドレス>
例:192.168.222.0/24
5WORKLOAD CLUSTER – CONTROL PLANE VIP NETWORK NAME<NSX ALBのネットワークを指定>
例:tkgnetwork
6WORKLOAD CLUSTER – CONTROL PLANE VIP NETWORK CIDR<ネットワークのIPアドレス>
例:192.168.222.0/24
7ANAGEMENT CLUSTER – SERVICE ENGINE GROUP NAMEDefault-Group
8MANAGEMENT CLUSTER – DATA PLANE VIP NETWORK NAME<NSX ALBのネットワークを指定>
例:tkgnetwork
9MANAGEMENT CLUSTER – DATA PLANE VIP NETWORK CIDR<ネットワークのIPアドレス>
例:192.168.222.0/24
10MANAGEMENT CLUSTER – CONTROL PLANE VIP NETWORK NAME<NSX ALBのネットワークを指定>
例:tkgnetwork
11MANAGEMENT CLUSTER – CONTROL PLANE VIP NETWORK CIDR<ネットワークのIPアドレス>
例:192.168.222.0/24
12CLUSTER LABELS (OPTIONAL) 設定無
13LOCATION (OPTIONAL) 設定無
14DESCRIPTION (OPTIONAL) 設定無
15LABELS (OPTIONAL)設定無
16VM FOLDER <vCenterで作成したフォルダを指定>
17DATASTORE<データストアを指定>
例:Datastore
18CLUSTERS, HOSTS, AND RESOURCE POOLS デプロイするホストをチェックする。
19NETWORK NAME<ポートグループを指定>
20CLUSTER SERVICE CIDR10.64.0.0./13
21CLUSTER POD CIDR100.96.0.0/11
22ACTIVATE PROXY SETTINGS無効
23ACTIVATE IDENTITY MANAGEMENT SETTINGS無効
24OS IMAGE<ベースイメージを指定>
例:photon-3-kube-v1.24.9+vmware.1
25Participate in the Customer Experience Improvement Program無効

10.「DEPLOY MANAGEMENT CLUSTER」をクリックする。
11.「created」になるまで待機する。

Workload Clusterの作成

1.Manegement Clusterのyamlファイルから、「Workload Cluster」を作成する。

cp /root/.config/tanzu/tkg/clusterconfigs/<Management Clusterのyaml> /root/.config/tanzu/tkg/clusterconfigs/<Workload Clusterのyaml> 
vi /root/.config/tanzu/tkg/clusterconfigs/<Workload Clusterのyaml> 
※「ClUSTER_NAME」のみを修正する。

2.以下パラメータを修正する。

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

3.Workload Clusterを作成する。

tanzu cluster create --file /root/.config/tanzu/tkg/clusterconfigs/<Workload Clusterのyaml>

kubectlでWorkload Clusterのコンテキストに変更

1.Workload Clusterのkubeconfigを作成

tanzu cluster kubeconfig get <Workload CLuster名> --admin

2.Workload Clusterのコンテキストを確認

kubectl config get-contexts

3.コンテキストの変更

kubectl config use-context <コンテキスト名>

手順(pinnipedを有効にする場合)

Active DirectoryのLDAPSでpinnipedを有効にする場合の設定するパラメータのみ記載しています。Active DirectoryのLDAPS通信のためにActive Directory証明書サービスの証明機関をインストールしています。

ルート証明書のエクスポート

1.Active Directoryでコマンドプロンプトを開く。

2.「mmc」と入力し、Enterを押下する。

3.「ファイル」-「スナップインの追加と削除」を選択する。

4.「証明書」を選択し、「追加」をクリックする。

5.「コンピュータアカウント」を選択し、「次へ」をクリックする。

6.「完了」をクリックする。

7.「OK」をクリックする。

8.「証明書」-「個人」のツリーを開き、「証明書」を選択する。

9.ルート証明書を右クリックし、「すべてのタスク」-「エクスポート」をクリックする。

10.「次へ」をクリックする。

11.「次へ」をクリックする。

12.「Base 64 encoded X.509(.CER)」を選択し、「次へ」をクリックする。

13.「参照」をクリックし、エクスポート先を選択し、ファイル名を入力する。

14.「次へ」をクリックする。

15.「完了」をクリックする。

16.「正しくエクスポートされました。」は「OK」をクリックする。

Management Cluster(pinniped入力部分を抜粋)

こちらを記載していますが、動作しないため、参考にしないようにお願いします。

#設定項目①設定項目②パラメータ
1Optionally Specify Identity Management with OIDC or LDAPSACTIVATE IDENTITY MANAGEMENT SETTINGSON
2OIDC/LDAPSLDAPS
3LDAPS Identity Management SourceLDAPS ENDPOINT<Active DirectoryのFQDN>
例:ad.test.local
4BIND DN (OPTIONAL)<LDAPSでログインするユーザ>
CN=Administrator,CN=Users,DC=test,DC=local
5BIND PASSWORD (OPTIONAL<LDAPSでログインするユーザのパスワード>
6User Search AttributesBASE DN (OPTIONAL)DC=test,DC=local
7FILTER<空白>
8USERNAME<空白>
9Group Search AttributesBASE DN (OPTIONAL)DC=test,DC=local
10FILTER <空白>
11NAME ATTRIBUTE (OPTIONA<空白>
12USER ATTRIBUTE (OPTIONAL) <空白>
13GROUP ATTRIBUTE (OPTIONAL)<空白>
14ROOT CA<Active Directoryのルート証明書>
※「ルート証明書のエクスポート」手順のファイルを参照する。

コメント

タイトルとURLをコピーしました