2017年3月30日木曜日

VMware harbor を ova からインストールしてみた

概要

前回 harbor を CentOS 上で動作させました
今回は ova ファイルから harbor を構築し使ってみたいと思います

環境

  • Ubuntu 16.04 (docker client)
  • harbor 0.5.0 (ova)
  • docker 17.03
  • docker-compose 1.8.0

ova ファイルのダウンロードとデプロイ

まずは ova ファイルをダウンロードします
https://github.com/vmware/harbor/releases/download/0.5.0/harbor_0.5.0-9e4c90e.ova

ダウンロードしたら vSphere Client を開いてデプロイしていきます

最後に harbor の設定を行う項目があるので設定します
パスワード (root, admin-ui, mysql) を 3 つ設定します
あとプロトコルを https -> http に変更します
ドメインや証明書が用意できれば https でも問題ないです
vmware-harbor-ova-deploy1.png

設定しデプロイが完了したらパワーオンしましょう
起動までにやや時間がかかりました (10, 20 分程度)
IP が取得できれば OK です

とりあえず取得できた IP にブラウザでアクセスすれば harbor の管理画面を確認できると思います
ユーザ名は admin でパスワードは ova デプロイ時に設定したものになります

docker client の設定

前回の CentOS7 のときも行いましたが Ubuntu 上で動作している dockerd に --insecure-registry オプションを追加する必要があります

  • mkdir -p /etc/systemd/system/docker.service.d/
  • vim /etc/systemd/system/docker.service.d/docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.100.102

192.168.100.102 は harbor が取得した IP を設定してください
あとはプロセスを再起動します

  • systemctl daemon-reload
  • systemctl restart docker

動作確認

harbor にログインしてイメージを push するところまで試します

  • docker login 192.168.100.102
Username: admin
Password:
Login Succeeded
  • docker pull alpine
  • docker tag alpine 192.168.100.102/library/alpine
  • docker push 192.168.100.102/library/alpine

で harbor に push できると思います
UI で library プロジェクト配下を確認すると alpine イメージがあるのを確認できると思います

Tips

結構はまったポイントがあったので紹介します

まず https のまま harbor をデプロイし証明書もドメインも何も設定しないと以下のエラーとなりログインできません

Error response from daemon: Head https://192.168.100.102/v2/: x509: certificate signed by unknown authority

そして https -> http 変更後、dockerd のオプションを変更しないでログインしようとしても以下のエラーとなります

Error response from daemon: Head https://192.168.100.102/v2/: dial tcp 192.168.100.102:443: getsockopt: connection refused

--insecure-registry オプションを追加を追加すると問題なくアクセスできます
あと当然ですが、可能であればドメインを張って SSL 証明書を harbor に登録したほうがセキュリティ的に良いです

VCH から harbor を使ってみた

ついでに Ubuntu からではなく VCH から harbor が使えるかも試してみました
VCH を作成する際のオプションに dockerd 同様 --insecure-registry オプションがあるのでそれを使って harbor の IP を指定して VCH を作成します

そして作成後にイメージをタグ付けして push してみようと思ったのですが、

Error response from daemon: vSphere Integrated Containers does not yet implement image.PushImage

になりました
どうやら VCH から push はできないようであくまでも harbor からの pull のみが出来るようです
試しに先程 pull イメージを VCH から pull してみたらそれはできました
(192.168.100.110 は VCH の IP)

  • docker -H 192.168.100.110:2375 pull 192.168.100.102/library/alpine

最後に

ova テンプレートから harbor をデプロイし Ubuntu 上の docker client から試してみました
いろいろと問題はありましたが、適切な設定をすれば問題なく使うことができました

前回の CentOS と比べるとデプロイの方法に関してはどちらも簡単なのでそれほど変わらないと思います
運用面的にも、デプロイ時に SSH を有効にするオプションがありそれを有効にすることで SSH ログインすることができます
ova 版でも SSH ができるので、それほど CentOS と変わるということはないかなと思います

ova の場合 harbor が動作している OS は PhotonOS になります
Photon OS 上にログインするとわかりますが、実は内部では CentOS 時同様 docker が動作しており harbor がコンテナで動作していることがわかると思います
これも CentOS の時と同じ仕組みになっています

ただ、ova の場合は vSphere 環境でしか使えません
CentOS は普通に VPS やクラウド上で動作させることができます
その辺の環境の違いに応じて適切なインストール方法を選択する感じかなと思います

0 件のコメント:

コメントを投稿