手当たり次第に書くんだ

飽きっぽいのは本能

VMware TKG 向け Harbor 構築 – 閉域 Kubernetes の内部レジストリ

VMware TKG などの Kubernetes クラスタを閉域またはプロキシ環境で使う場合、内部レジストリとして Harbor を用意する必要があります。この記事では、TKG の前提基盤として Harbor を整える観点で再整理します。

なぜ Harbor が必要になるのか

  • 外部レジストリへ直接到達できない環境でイメージを配布するため。
  • クラスタ構築時に必要なイメージを内部にミラーするため。
  • プロジェクト単位でイメージを管理し、認証や権限を分けるため。
  • Kubernetes ノードが参照するレジストリを内部に固定するため。

全体構成

要素役割
Photon OSHarbor 実行用 OS
Harbor内部レジストリ
TLS 証明書ノードから信頼される HTTPS 接続
TKG / Kubernetes ノードHarbor からイメージを pull する側

Photon OS の準備

hostnamectl set-hostname harbor.example.local
tdnf update -y
tdnf install -y docker docker-compose wget tar openssl
systemctl enable --now docker

プロキシ環境での Docker 設定

プロキシ配下では Docker daemon 側にも proxy を設定します。`NO_PROXY` には Harbor、Kubernetes ノード、クラスタ内部ネットワークを含めます。

mkdir -p /etc/systemd/system/docker.service.d
cat <<'EOF' > /etc/systemd/system/docker.service.d/proxy.conf
[Service]
Environment="HTTP_PROXY=http://proxy.example.local:3128"
Environment="HTTPS_PROXY=http://proxy.example.local:3128"
Environment="NO_PROXY=localhost,127.0.0.1,harbor.example.local,10.0.0.0/8,192.168.0.0/16"
EOF

systemctl daemon-reload
systemctl restart docker
systemctl show --property=Environment docker

Harbor の導入

wget https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-online-installer-v2.10.0.tgz
tar xzf harbor-online-installer-v2.10.0.tgz
cd harbor
cp harbor.yml.tmpl harbor.yml

./prepare
./install.sh
docker compose ps

Kubernetes ノード側の確認

Harbor を使う側では、名前解決、TLS 信頼、レジストリ認証を確認します。TKG ではここが不完全だとクラスタ構築やイメージ pull で詰まります。

curl -k https://harbor.example.local/
docker login harbor.example.local
docker pull harbor.example.local/library/test-image:latest

まとめ

TKG や閉域 Kubernetes 環境では、Harbor は補助的なツールではなく前提基盤です。クラスタ構築手順より先に、内部レジストリ、TLS、プロキシ、名前解決を安定させる必要があります。

VMware TKG 向け Harbor 構築 – 閉域 Kubernetes の内部レジストリ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る