Docker のコンテナ管理ツール Universal Control Plane (UCP) をインストールする

こんにちは。エクセルソフトの田淵です。

前回までで、Docker EE をインストールして設定しました。引き続き、Docker CEにはないコンテナ管理のダッシュボードなどを提供するUniversal Control Plane (UCP) をインストールしていきます。
Docker 公式ドキュメントの Install UCP for production | Docker Documentation に沿って進めていきます。

UCP login

UCP Dashboard

こんな感じの画面です。

事前準備

システム要件

  • Docker Enterprise Edition 17.06 以上
  • Linux kernel 3.10 以上
  • 4.00 GB 以上のメモリ
  • 3.00 GB 以上のディスク空き容量
  • 固定IPアドレス

詳しくはUCP System requirements | Docker Documentationを参照してください。

ネットワーク要件

以下のポートを開ける必要があります。目的の欄は英語で見た方がわかりやすいかも…
ポートを開ける方法はufwfirewalldの情報を参照してください。

ホスト 方向 ポート 目的
managers, workers in TCP 443 (設定可能) UCP web UI と API
managers in TCP 2376 (設定可能) Docker Swarm manager。後方互換性のために使用
managers, workers in TCP 2377 (設定可能) swarmノード間の通信
managers, workers in, out TCP, UDP 4789 オーバーレイネットワーク
managers, workers in, out TCP, UDP 7946 ゴシッププロトコルのクラスタリング
managers, workers in TCP 12376 UCP、Docker Engine、Docker SwarmにアクセスするためのTLSプロキシ
managers in TCP 12379 内部ノード設定、クラスタ設定、HA
managers in TCP 12380 内部ノード設定、クラスタ設定、HA
managers in TCP 12381 認証局
managers in TCP 12382 UCP認証局
managers in TCP 12383 認証ストレージバックエンド
managers in TCP 12384 replication across managers用の認証ストレージバックエンド
managers in TCP 12385 認証サービスAPI
managers in TCP 12386 認証ワーカー
managers in TCP 12387 メトリクスサービス

RHEL/CentOSなどの方はfirewalldを使いますが、serviceを追加した方が早いと思いますので、以下にサンプルのdocker-ucp.xmlを置いておきます。/etc/firewalld/servicesdocker-ucp.xmlを作成して、ペーストしていただくと良いかと。

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Docker Universal Control Plane(UCP)</short>
  <description>Docker Universal Control Plane (UCP) is a containerized application that can be installed on-premise or on a cloud infrastructure.</description>
  <port protocol="tcp" port="443"/>
  <port protocol="tcp" port="2376"/>
  <port protocol="tcp" port="2377"/>
  <port protocol="tcp" port="4789"/>
  <port protocol="udp" port="4789"/>
  <port protocol="tcp" port="7946"/>
  <port protocol="udp" port="7946"/>
  <port protocol="tcp" port="12376"/>
  <port protocol="tcp" port="12379-12387"/>
</service>

firewalldの設定は以下のエントリーを参考にしました。

インストール

Docker EE を全ノードにインストールします。これは前回の記事をご覧ください。

named volumes をカスタマイズ

こちらの処理ですが、標準のボリュームを使用する場合はスキップしてよいとのことなのでスキップします。

UCP インストール

今回は Ubuntu に UCP をインストールしてみます。以下のコマンドを実行します。“はインストールするマシンの固定IPアドレスに置き換えてください。

# 最新のUCPをPULLします。
$ docker image pull docker/ucp:2.2.3

# UCPをインストールします。
$ docker container run --rm -it --name ucp \
  -v /var/run/docker.sock:/var/run/docker.sock \
  docker/ucp:2.2.3 install \
  --host-address <node-ip-address> \
  --interactive

いくつかWarningが出ているようですが、インストール成功したようです。

INFO[0000] Verifying your system is compatible with UCP 2.2.3 (b3f6755b6) 
INFO[0000] Your engine version 17.06.1-ee-2, build 8e43158 (4.10.0-33-generic) is compatible 
Admin Username: <UserName>
Admin Password: 
Confirm Admin Password: 
INFO[0015] Pulling required images... (this may take a while) 
INFO[0015] Pulling docker/ucp-auth-store:2.2.3          
INFO[0032] Pulling docker/ucp-metrics:2.2.3             
INFO[0049] Pulling docker/ucp-agent:2.2.3               
INFO[0059] Pulling docker/ucp-auth:2.2.3                
INFO[0066] Pulling docker/ucp-controller:2.2.3          
INFO[0077] Pulling docker/ucp-etcd:2.2.3                
INFO[0090] Pulling docker/ucp-cfssl:2.2.3               
INFO[0096] Pulling docker/ucp-hrm:2.2.3                 
INFO[0105] Pulling docker/ucp-dsinfo:2.2.3              
INFO[0241] Pulling docker/ucp-compose:2.2.3             
INFO[0262] Pulling docker/ucp-swarm:2.2.3               
WARN[0270] None of the hostnames we'll be using in the UCP certificates [X220-Ubuntu 127.0.0.1 172.17.0.1 192.168.2.40] contain a domain component. Your generated certs may fail TLS validation unless you only use one of these shortnames or IPs to connect. You can use the --san flag to add more aliases 

You may enter additional aliases (SANs) now or press enter to proceed with the above list.
Additional aliases: 
INFO[0000] Initializing a new swarm at 192.168.2.40     
WARN[0006] Unauthorized users may be able to access this node since it's listening on port 2375. Learn more at https://docker.com/ddc-18 
WARN[0006] Installation will continue in 10 seconds...  
INFO[0021] Establishing mutual Cluster Root CA with Swarm 
INFO[0024] Installing UCP with host address 192.168.2.40 - If this is incorrect, please specify an alternative address with the '--host-address' flag 
INFO[0024] Generating UCP Client Root CA                
INFO[0024] Deploying UCP Service                        
INFO[0075] Installation completed on X220-Ubuntu (node tmxa0zmog9v0zq0zb2o0gzrwa) 
INFO[0075] UCP Instance ID: shq30mqnx9sxxn17scog6tu2x   
INFO[0075] UCP Server SSL: SHA-256 Fingerprint=93:46:F5:73:2E:D5:95:40:CE:F1:33:66:6C:00:28:68:AA:E2:D3:01:BC:8A:7A:89:83:7B:9D:91:9E:55:12:3D 
INFO[0075] Login to UCP at https://192.168.2.40:443     
INFO[0075] Username: <UserName>                           
INFO[0075] Password: (your admin password)  

https://192.168.2.40/manage/resources/stacks
WARN0002 で言われている 2376 が認証されていないユーザーからもアクセスできるという問題はとりあえずそのままにしてしまいました。詳細は書かれている通り https://docker.com/ddc-18 を参照してください。

指定したユーザー名とパスワードでアクセスしてみました。やったね!

ライセンスを求められるので、評価版のライセンスを入れましょう。ちゃんと動いているようです。

以上です。

次は

Docker Trusted Registry をインストールしてみます。

Docker EE評価版

Docker EE評価版はこちら からお申し込みいただけます。ダウンロード方法などはDocker EEをUbuntuにインストールする | エクセルソフト ブログを参照してください。

恐らく Docker EE のインストールはしなくても、UCP のインストール手順で CS Docker をインストールするのでそれで大丈夫だと思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする