vm.gowatana.jp

NEOにほんごVMware(仮)

はじめての Tanzu Kubernetes Grid。Part-02:Bootstrap マシンの準備

VMware Tanzu Kubernetes Grid(TKG)で、vSphere 環境に Kubernetes クラスタを作成してみます。今回は、Kubernetes クラスタ作成の起点になる Bootstrap マシンを用意します。

 

前回はこちら。

 

ドキュメントでは、下記のあたりです。

 

今回の内容です。

 

使用するソフトウェア

今回の Bootstrap マシンの OS は、Photon OS 4.0(Linux)を利用します。OVA ファイルは、下記からダウンロードしたものをデプロイしています。

 

TKG は、バージョン 1.6.1 を利用します。ソフトウェアは Customer Connect(下記)からダウンロードしておきます。

 

今回利用するソフトウェアは下記です。

  • kubectl(kubectl-linux-v1.23.10+vmware.1.gz)
  • tanzu CLI(tanzu-cli-bundle-linux-amd64.tar.gz)
  • Kubernetes ノードの OVA ファイル(photon-3-kube-v1.23.10+vmware.1-tkg.1-efe12079f22627aa1246398eba077476.ova) ★これは今後の手順で使用する。

 

1. Bootstrap マシンの構築

ここでは、下記の部分を構築します。

 

1-1. OS 環境の準備

Photon OS の OVA ファイルをデプロイしておきます。仮想マシンのリソース割り当ては、下記のようにしてあります。

  • vCPU: 2
  • メモリ: 8GB(要件は 6GB)

 

仮想マシンをパワーオンして、root / changeme でログイン、初回パスワード変更をしておきます。

ホスト名の設定と RPM パッケージ更新を実施して、OS を再起動しておきます。

root@photon-machine [ ~ ]# hostnamectl set-hostname lab-tkg-02
root@photon-machine [ ~ ]# tdnf update -y
root@photon-machine [ ~ ]# reboot

 

tdnf コマンドで、tar と diffutils の RPM をインストールしておきます。diffutils は TKG としては不要ですが、今回の手順ではファイル比較で利用したいのでインストールしておきます。

root@lab-tkg-02 [ ~ ]# tdnf install -y tar diffutils

 

あとで外部から Web UI にアクセスするので、今回は iptables を停止してしまいます。

root@lab-tkg-02 [ ~ ]# systemctl stop iptables
root@lab-tkg-02 [ ~ ]# systemctl disable iptables

 

1-2. Docker Engine の準備

Photon OS の OVA には、デフォルトで Docker がインストールされています。

root@lab-tkg-02 [ ~ ]# rpm -q docker
docker-20.10.14-10.ph4.x86_64
root@lab-tkg-02 [ ~ ]# docker -v
Docker version 20.10.14, build a224086

 

docker サービスを有効化して、起動しておきます。

root@lab-tkg-02 [ ~ ]# systemctl enable docker
root@lab-tkg-02 [ ~ ]# systemctl start docker

 

1-3. OS ユーザの準備

tanzu CLI を root 以外のユーザで実行するため、demo-01 ユーザを作成します。

root@lab-tkg-02 [ ~ ]# useradd -m demo-01
root@lab-tkg-02 [ ~ ]# passwd demo-01

 

demo-01 ユーザを、docker グループに追加しておきます。

root@lab-tkg-02 [ ~ ]# usermod -aG docker demo-01

 

su で、作成したユーザに切り替えます。

root@lab-tkg-02 [ ~ ]# su - demo-01
demo-01 [ ~ ]$ id
uid=1000(demo-01) gid=100(users) groups=100(users),999(docker) 

 

docker コマンドが実行できることを確認しておきます。

demo-01 [ ~ ]$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

 

SSH 鍵ペアを作成します。

demo-01 [ ~ ]$ ssh-keygen -P '' -f $HOME/.ssh/id_rsa
demo-01 [ ~ ]$ ls $HOME/.ssh/
id_rsa  id_rsa.pub

 

生成された公開鍵を確認しておきます。

demo-01 [ ~ ]$ cat $HOME/.ssh/id_rsa.pub
ssh-rsa AAAAB3Nza~ demo-01@lab-tkg-02

 

CLI を配置するディレクトリ($HOME/bin)を作成して、PATH 環境変数に追加設定しておきます。

demo-01 [ ~ ]$ mkdir $HOME/bin
demo-01 [ ~ ]$ echo 'PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile
demo-01 [ ~ ]$ source $HOME/.bash_profile

 

1-4. tanzu CLI のインストール

ここでは、tanzu コマンドとプラグインをインストールします。tar.gz アーカイブ ファイルには Carvel 関連ツールも同梱されていますが、ここではインストールをスキップします。

Customer Connect からダウンロードした kubectl を、SFTP などで転送しておきます。下記のように、kubectl と tanz-cli を転送しておきます。

demo-01 [ ~ ]$ ls -lh
total 306M
drwxr-x--- 2 demo-01 users 4.0K Jan  8 15:33 bin
-rw-r----- 1 demo-01 users  13M Jan  7 18:18 kubectl-linux-v1.23.10+vmware.1.gz
-rw-r----- 1 demo-01 users 293M Jan  7 18:17 tanzu-cli-bundle-linux-amd64.tar.gz

 

配置しておいた tanzu CLI を解凍します。

demo-01 [ ~ ]$ tar zxf tanzu-cli-bundle-linux-amd64.tar.gz

 

$HOME/bin にインストールします。

demo-01 [ ~ ]$ ls ./cli/core/v*/tanzu-core-linux_amd64
cli/core/v0.25.4/tanzu-core-linux_amd64
demo-01 [ ~ ]$ install ./cli/core/v*/tanzu-core-linux_amd64 $HOME/bin/tanzu

 

バージョンを確認します。TKG 1.6.1 の Tanzu Framework バージョンは v0.25.4 です。

demo-01 [ ~ ]$ tanzu version
version: v0.25.4
buildDate: 2022-12-22
sha: 8204f5b0d-dirty

 

tanzu CLI を初期化します。

demo-01 [ ~ ]$ tanzu init
Checking for required plugins...
Installing plugin 'login:v0.25.4'
Installing plugin 'management-cluster:v0.25.4'
Installing plugin 'package:v0.25.4'
Installing plugin 'pinniped-auth:v0.25.4'
Installing plugin 'secret:v0.25.4'
Installing plugin 'telemetry:v0.25.4'
Successfully installed all required plugins
?  successfully initialized CLI

 

インストールされたプラグインを確認しておきます。

demo-01 [ ~ ]$ tanzu plugin list
  NAME                DESCRIPTION                                                        SCOPE       DISCOVERY  VERSION  STATUS
  login               Login to the platform                                              Standalone  default    v0.25.4  installed
  management-cluster  Kubernetes management-cluster operations                           Standalone  default    v0.25.4  installed
  package             Tanzu package management                                           Standalone  default    v0.25.4  installed
  pinniped-auth       Pinniped authentication operations (usually not directly invoked)  Standalone  default    v0.25.4  installed
  secret              Tanzu secret management                                            Standalone  default    v0.25.4  installed
  telemetry           Configure cluster-wide telemetry settings                          Standalone  default    v0.25.4  installed

 

tanzu CLI の Bash 補完機能を有効化しておきます。これは、再ログインした際に反映されます。

demo-01 [ ~ ]$ echo 'source <(tanzu completion bash)' >> $HOME/.bash_profile

 

1-5. kubectl のインストール

配置しておいた kubectl のファイルを解凍します。

demo-01 [ ~ ]$ gunzip kubectl-linux-v1.23.10+vmware.1.gz
demo-01 [ ~ ]$ ls -l
total 344860
drwxr-x--- 2 demo-01 users      4096 Jan  8 15:33 bin
-rw-r----- 1 demo-01 users  46583808 Jan  7 18:18 kubectl-linux-v1.23.10+vmware.1
-rw-r----- 1 demo-01 users 306544579 Jan  7 18:17 tanzu-cli-bundle-linux-amd64.tar.gz

 

kubectl を、$HOME/bin ディレクトリにインストールします。

demo-01 [ ~ ]$ install kubectl-linux-v1.23.10+vmware.1 $HOME/bin/kubectl

 

インストール済みの元ファイルを削除しておきます。

demo-01 [ ~ ]$ rm -rf kubectl-linux-*

 

kubectl が実行できるようになったことを確認しておきます。

demo-01 [ ~ ]$ kubectl version --short --client
Client Version: v1.23.10+vmware.1

 

kubectl の Bash 補完機能を有効化しておきます。これは、再ログインした際に反映されます。

demo-01 [ ~ ]$ echo 'source <(kubectl completion bash)' >> $HOME/.bash_profile

 

つづく。