Tanzu Mission Control Self-Managed(TMC-SM)を自宅ラボに構築します。今回は、Harbor レジストリを準備します。
前回はこちら。
今回の内容です。
- 1. Harbor レジストリの構築
- 2. Bootstrap VM への Harbor CA 証明書の追加
- 3. Tanzu Mission Control Self-Managed パッケージ リポジトリの Push
- 4. Tanzu Standard パッケージ リポジトリのコピー
Harbor によるコンテナ レジストリを構築して、TMC-SM と Tanzu Standard のパッケージ リポジトリを配置します。
1. Harbor レジストリの構築
Harbor は、TKG と一緒に提供されている OVA をデプロイしておきます。
今回の Harbor のアドレス(FQDN)は下記です。このアドレスも、事前に DNS に登録しておきます。
- lab-harbor-03.go-lab.jp
2. Bootstrap VM への Harbor CA 証明書の追加
今回の作業は、Bootstrap VM から実施します。Photon OS 5 はデフォルトでは sudo がインストールされておらず、証明書ストアなどを操作するので root ユーザで作業します。
まず、下記のように curl コマンドで Harbor の CA 証明書をダウンロードできることを確認しておきます。
# curl -k https://lab-harbor-03.go-lab.jp/api/v2.0/systeminfo/getcert
tmc-sm と imgpkg は、ゲスト OS の証明書ストアを参照するようなので、Harbor の CA 証明書を Photon OS の /etc/pki/tls/certs/ca-bundle.crt に追加しておきます。
# cp /etc/pki/tls/certs/ca-bundle.crt ./ca-bundle.crt_bk # curl -k https://lab-harbor-03.go-lab.jp/api/v2.0/systeminfo/getcert >> /etc/pki/tls/certs/ca-bundle.crt
CA 証明書が配置され、「-k」オプションなしでも下記の curl コマンドがエラーなく実行可能になったことを確認しておきます。
# curl https://lab-harbor-03.go-lab.jp/api/v2.0/systeminfo/getcert
3. Tanzu Mission Control Self-Managed パッケージ リポジトリの Push
Bootstrap VM に Harbor の CA 証明書を配置して、tmc-sm でリポジトリにコンテナ イメージを Push します。
3-1. Harbor でのプロジェクト(tmc-sm)作成
Harbor の Web UI で、TMC-SM のイメージを Push するプロジェクト(リポジトリ)を作成しておきます。
「Projects」画面にある、「NEW PROJECT」をクリックします。
「New Project」画面が表示されるので、下記を入力して「OK」をクリックします。
- Project Name: tmc-sm
- Access Level: Public のチェックを On にする(インストーラのみを配置するので Public にしておく)
tmc-sm プロジェクトが作成されました。
3-2. TMC-SM 1.0 アーカイブのダウンロード
VMware Customer Connect から、TMC-SM 1.0 のアーカイブをダウンロードしておきます。
Tanzu Mission Control Self-Managed 1.0
TMC-SM のアーカイブ ファイルは 5GB 近い容量があるので、Bootstrap VM で追加ディスクをマウントしておいた /work ディレクトリに配置しておきます。
- ファイル名: tmc-self-managed-1.0.0.tar
アーカイブを展開するため、tar をインストールしておきます。
# tdnf install tar -y
アーカイブを展開します。
# mkdir -p /work/tanzumc # tar xvf /work/tmc-self-managed-1.0.0.tar -C /work/tanzumc
3-3. tmc-sm push-images の実行
tmc-sm push-images を実行して、Harbor レジストリに TMC-SM のイメージをコピーします。
# cd /work/tanzumc/ # ./tmc-sm push-images harbor --project lab-harbor-03.go-lab.jp/tmc-sm --username admin --password VMware1!
後続のパッケージ リポジトリの追加で必要になるため、イメージ名を確認しておきます。
# cat tanzumc/pushed-package-repository.json | more {"repositoryImage":"lab-harbor-03.go-lab.jp/tmc-sm/package-repository","version":"1.0.0"}
imgpkg コマンドでも、タグを確認できます。
# ./dependencies/imgpkg/imgpkg tag list --image lab-harbor-03.go-lab.jp/tmc-sm/package-repository Tags Name 1.0.0 1 tags Succeeded
Harbor の Web UI でも、tmc-sm プロジェクトにリポジトリのイメージがコピーされたことが確認できます。
4. Tanzu Standard パッケージ リポジトリのコピー
TMC-SM では、cert-manager による TLS 証明書発行機能を利用します。
cert-manager は Tanzu Standard のパッケージ リポジトリからインストールできますが、今回はそのリポジトリをオンプレの Harbor レジストリにコピーして利用します。
ちなみにこの手順を実施せず、通常の TKG のようにインターネット経由でも cert-manager はインストールできます。
4-1. Harbor でのプロジェクト(tkg)作成
Harbor に、さきほどの tmc-sm (リポジトリ)プロジェクトと同様の設定で「tkg」という名前でプロジェクトを作成しておきます。
- Project Name: tkg
- Access Level: Public のチェックを On にする(インストーラのみを配置するので Public にしておく)
4-2. imgpkg の利用 / インストール
本来は tmc-sm 以外で利用すべきではないと思いますが、便利なので今回は TMC-SM のアーカイブに含まれている imgpkg を利用してしまいます。
# ./dependencies/imgpkg/imgpkg version imgpkg version 0.37.2 Succeeded
もしくは、TKG のアーカイブ(tanzu-cli-bundle-linux-amd64.tar.gz)を展開した cli ディレクトリから、imgpkg をインストールします。
imgpkg を解凍します。
# gunzip --keep cli/imgpkg-linux-amd64-v0.31.1+vmware.1.gz
imgpkg をインストールします。
# install cli/imgpkg-linux-amd64-v0.31.1+vmware.1 ~/bin/imgpkg
imgpkg が実行可能になったことを確認しておきます。
# imgpkg version imgpkg version 0.31.1 Succeeded
4-3. Tanzu Standard パッケージ リポジトリのコピー
今回は TMC-SM に含まれる imgpkg を利用しているので、/work/tanzumc ディレクトリからの相対パスで実行します。
$ cd /work/tanzumc/
imgpkg で、Tanzu Standard のリポジトリをコピーします。
./dependencies/imgpkg/imgpkg copy \ --bundle=projects.registry.vmware.com/tkg/packages/standard/repo:v2.2.0 \ --to-repo=lab-harbor-03.go-lab.jp/tkg/tanzu-standard \ --registry-username=admin \ --registry-password='VMware1!'
コピー先のリポジトリで、タグを確認しておきます。
# ./dependencies/imgpkg/imgpkg tag list --image lab-harbor-03.go-lab.jp/tkg/tanzu-standard Tags Name v2.2.0 1 tags Succeeded
Harbor の Web UI でも、「tkg」プロジェクトにリポジトリがコピーされたことを確認できます。
つづく。