予期せぬ辛みは大体Proxy
TL;DR
- docker daemon が Registry service を探す際のNoProxy設定を下記に追加する
/etc/systemd/system/docker.service.d/http-proxy.conf
- daemon と docker を再起動する
sudo systemctl daemon-reload
sudo systemctl restart docker
/etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=<your proxy IP:Port>"
Environment="HTTPS_PROXY=<your proxy IP:Port>"
Environment="NO_PROXY=core.harbor.domain"
Harborを建てた
Rancherで構築されたk8s上にHarborを立てる手順はこちらを参考にさせていただきました。
ただ、RancherのCatalogで提供されているHarborマニュフェストがやや古いので、Manage Catalogs
ボタンから公式HelmChartRegistry(https://helm.goharbor.io) を追加しました。
また、自分はProxy環境下なので、Yamlを直接編集して下記を追加しています。
proxy:
httpProxy: "<your proxy IP:Port>"
httpsProxy: "<your proxy IP:Port>"
Deployして完了
Docker pull で Error が出た
上記で設定完了した思って、Harborにpushされたimageを意気揚々とpullしたところ下記のエラーが発生
$ docker pull core.harbor.domain/library/alpine:latest
Error response from daemon: Get https://core.harbor.domain/v2/: Service Unavailable
ハマった
上記のエラーを見て、/etc/systemd/system/docker.service.d/http-proxy.conf
にNoProxy設定を追加したのですが、下記のようにIPで設定をしてしまい、ハマりました。。。
/etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
・・・
Environment="NO_PROXY=<worker nodeのIP>"
ここIPじゃだめなんですね・・・
ちなみに/lib/systemd/system/docker.service
でもいいみたい。
お し ま い