概要
Tanzu Kubernetes Grid 2.1.0のスタンドアロン管理クラスタを構築してみました。Boot Strapマシンの作成については、公式マニュアルが詳細に記載されているので、そちらを見ることをお勧めします。LDAPについては記載していますが、上手く動作しないため、参考にしないようにお願いします。
環境
# | ソフトウェア | バージョン | vCPU | メモリ | ディスク | 備考 |
1 | VMware ESXi | 8.0 | 8 | 2 | – | |
2 | vCenter Appliance | 8.0 | 2 | 12GB | default値 | |
3 | Rockey Linux(bootstrap) | 9.1 | 2 | 6GB | 100GB | ・パッケージは最小限のインストール |
4 | Tanzu CLI | 0.28.0/0.28.1 | – | – | – | TKG 2.1.0/2.1.1 |
5 | kubectl | 1.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」をクリックする。
# | 設定項目 | パラメータ |
1 | VCENTER SERVER | <vCenter ServerのIPアドレス> |
2 | USERNAME | <vCenter Serverのユーザ> 例:administrator@vsphere.local |
3 | PASSWORD | <パスワードを入力> |
4 | Disable Verification | チェック有 |
6.「vSphere 8.0.0 Environment Detected」画面で「DEPLOY TKG MANAGEMENT CLUSTER」をクリックする。
7.「SSH PUBLIC KEY」に作成したSSHキーを入力し、「NEXT」をクリックする。
8.Management Cluster Settingsは以下のパラメータを入力し、「NEXT」をクリックする。
# | 設定項目 | パラメータ |
1 | Management Cluster Settings | Development |
2 | INSTANCE TYPE | small |
3 | MANAGEMENT CLUSTER NAME (OPTIONAL) | <クラスタの名前>※1 例:tkg-essential |
4 | MACHINE HEALTH CHECKS | チェック無 |
5 | CONTROL PLANE ENDPOINT PROVIDER | NSX Advanced Load Balancer |
6 | CONTROL PLANE ENDPOINT (OPTIONAL) | <空白> |
7 | WORKER NODE INSTANCE TYPE | Small |
8 | ACTIVATE AUDIT LOGGING | チェック無 |
9 | CONTROLLER HOST | <NSX ALBのIPアドレス> |
10 | USERNAME | admin |
11 | PASSWORD | <NSX ALBのパスワードを入力> |
12 | CONTROLLER CERTIFICATE AUTHORITY | ※2 |
※2 証明書はNSX ALBに接続し、「テンプレート」-「セキュリティ」-「SSL/TLS 証明書」を開き、「エクスポート」の画面から証明書をクリップボードにコピーする。
9.「VERIFIED」をクリックし、エラーが表示されないことを確認し、以下パラメータを入力して「REVIEW CONFIGURATION」をクリックする。
# | 設定項目 | パラメータ |
1 | CLOUD NAME | Default-Cloud |
2 | SERVICE ENGINE GROUP NAME | Default-Group |
3 | WORKLOAD CLUSTER – DATA PLANE VIP NETWORK NAME | <NSX ALBのネットワークを指定> 例:tkgnetwork |
4 | WORKLOAD CLUSTER – DATA PLANE VIP NETWORK CIDR | <ネットワークのIPアドレス> 例:192.168.222.0/24 |
5 | WORKLOAD CLUSTER – CONTROL PLANE VIP NETWORK NAME | <NSX ALBのネットワークを指定> 例:tkgnetwork |
6 | WORKLOAD CLUSTER – CONTROL PLANE VIP NETWORK CIDR | <ネットワークのIPアドレス> 例:192.168.222.0/24 |
7 | ANAGEMENT CLUSTER – SERVICE ENGINE GROUP NAME | Default-Group |
8 | MANAGEMENT CLUSTER – DATA PLANE VIP NETWORK NAME | <NSX ALBのネットワークを指定> 例:tkgnetwork |
9 | MANAGEMENT CLUSTER – DATA PLANE VIP NETWORK CIDR | <ネットワークのIPアドレス> 例:192.168.222.0/24 |
10 | MANAGEMENT CLUSTER – CONTROL PLANE VIP NETWORK NAME | <NSX ALBのネットワークを指定> 例:tkgnetwork |
11 | MANAGEMENT CLUSTER – CONTROL PLANE VIP NETWORK CIDR | <ネットワークのIPアドレス> 例:192.168.222.0/24 |
12 | CLUSTER LABELS (OPTIONAL) | 設定無 |
13 | LOCATION (OPTIONAL) | 設定無 |
14 | DESCRIPTION (OPTIONAL) | 設定無 |
15 | LABELS (OPTIONAL) | 設定無 |
16 | VM FOLDER | <vCenterで作成したフォルダを指定> |
17 | DATASTORE | <データストアを指定> 例:Datastore |
18 | CLUSTERS, HOSTS, AND RESOURCE POOLS | デプロイするホストをチェックする。 |
19 | NETWORK NAME | <ポートグループを指定> |
20 | CLUSTER SERVICE CIDR | 10.64.0.0./13 |
21 | CLUSTER POD CIDR | 100.96.0.0/11 |
22 | ACTIVATE PROXY SETTINGS | 無効 |
23 | ACTIVATE IDENTITY MANAGEMENT SETTINGS | 無効 |
24 | OS IMAGE | <ベースイメージを指定> 例:photon-3-kube-v1.24.9+vmware.1 |
25 | Participate 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入力部分を抜粋)
こちらを記載していますが、動作しないため、参考にしないようにお願いします。
# | 設定項目① | 設定項目② | パラメータ |
1 | Optionally Specify Identity Management with OIDC or LDAPS | ACTIVATE IDENTITY MANAGEMENT SETTINGS | ON |
2 | OIDC/LDAPS | LDAPS | |
3 | LDAPS Identity Management Source | LDAPS ENDPOINT | <Active DirectoryのFQDN> 例:ad.test.local |
4 | BIND DN (OPTIONAL) | <LDAPSでログインするユーザ> CN=Administrator,CN=Users,DC=test,DC=local | |
5 | BIND PASSWORD (OPTIONAL | <LDAPSでログインするユーザのパスワード> | |
6 | User Search Attributes | BASE DN (OPTIONAL) | DC=test,DC=local |
7 | FILTER | <空白> | |
8 | USERNAME | <空白> | |
9 | Group Search Attributes | BASE DN (OPTIONAL) | DC=test,DC=local |
10 | FILTER | <空白> | |
11 | NAME ATTRIBUTE (OPTIONA | <空白> | |
12 | USER ATTRIBUTE (OPTIONAL) | <空白> | |
13 | GROUP ATTRIBUTE (OPTIONAL) | <空白> | |
14 | ROOT CA | <Active Directoryのルート証明書> ※「ルート証明書のエクスポート」手順のファイルを参照する。 |
コメント