vm.gowatana.jp

NEOにほんごVMware(仮)

Tanzu Mission Control Self-Managed 自宅ラボ構築。Part-02 Harbor レジストリの準備

Tanzu Mission Control Self-Managed(TMC-SM)を自宅ラボに構築します。今回は、Harbor レジストリを準備します。

前回はこちら。

 

今回の内容です。

 

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」プロジェクトにリポジトリがコピーされたことを確認できます。

 

つづく。