概要
harbor を https で使うための手順を紹介します
harbor はデフォルトで http なので、わざわざ docker クライアント側の insecure-registry に登録する処理が必要になります
ドメインと証明書が使える環境であればレジストリ自体 https を使うことが推奨されています
今回はドメインと証明書を用意して harbor を https で使えるようにしてみました
環境
- Ubuntu 16.04
- harbor 1.1.1
- docker 17.05
事前準備
ドメインを取得して A レコードを登録して証明書を取得します
この流れは過去に紹介もしているので過去の手順でも OK です
ドメインの取得
何でも OK です
とりあえずドメインを取得してください
A レコードの追加
取得したドメインのサブドメインを A レコードとして DNS サーバに登録します
今回登録したレジストリのサブドメインは「reg01.harbor.gq」とします
証明書の作成
とりあえず A レコードで登録したサブドメインの証明書を 1 つ作成しましょう
同一ドメインでレジストリを何台も構築する場合はワイルドカード SSL 証明書で作成することをオススメします
そして作成した証明書は harbor をインストールするサーバに転送しておきましょう
scp -r /etc/letsencrypt/archive/reg01.harbor.gq 192.168.100.201:~
harbor の設定
事前準備
今回は Ubuntu 上に harbor を構築します
事前に docker と docker-compose が必要になるので準備しておきましょう (参考)
設定ファイルの編集
インストーラをダウンロードして展開し、設定ファイルの証明書を設定する部分を編集します
- wget ‘https://github.com/vmware/harbor/releases/download/v1.1.1/harbor-offline-installer-v1.1.1.tgz’
- tar zvxf harbor-offline-installer-v1.1.1.tgz
- cd harbor
- vim harbor.cfg
hostname = reg01.harbor.gq
ui_url_protocol = https
ssl_cert = /root/reg01.harbor.gq/fullchain1.pem
ssl_cert_key = /root/reg01.harbor.gq/privkey1.pem
- ./prepare
customize_crt = on という項目がありますがこれは on のままにしておかないてください
証明書を転送したときの転送先は /root/reg01.harbor.gq/ に転送しているのでそのパスを指定しています
インストールと起動
設定が変更できたらインストールしましょう
- ./install
ダラダラとログが流れて最終的にコンテナが上がってきます
同一ディレクトリ内に docker-compose.yml があるので docker-compose ps などでコンテナを確認することができます
これで証明書が設定されて https でアクセスできるようになっているはずです
動作確認
docker クライアントから https でアクセスできるか確認してみましょう
- docker login reg01.harbor.gq
admin/Harbor12345 でログインしましょう
ちゃんと証明書が設定されていれば怒られないはずです
- docker pull alpine
- docker tag alpine reg01.harbor.gq/library/alpine
- docker push reg01.harbor.gq/library/alpine
https://reg01.harbor.gq/harbor/tags/1/library%2Falpine にアクセスすると alpine の latest が存在することがわかります
pull もできるか確認してみましょう
- docker rmi reg01.harbor.gq/library/alpine
- docker pull reg01.harbor.gq/library/alpine:latest
- docker logout reg01.harbor.gq
ログアウトしてから pull するとできないのが確認できると思います
最後に
harbor に https でアクセスできるようにしてみました
ドメインと証明書が取れれば簡単に設定することができます
以下の証明書のエラーが出た場合は再度コンテナを生成し直してみてください
Error response from daemon: Get https://reg01.harbor.gq/v1/users/: dial tcp 192.168.100.201:443: getsockopt: no route to host
- docker-compose down
- docker rmi $(docker images -q)
- ./prepare
- docker-compose up -d
0 件のコメント:
コメントを投稿