LoginSignup
1
3

More than 5 years have passed since last update.

AWSにIBM Cloud Private-CE 2.1.0.3をインストールする

Last updated at Posted at 2018-06-06

AWSにシングルノードのICP-CE 2.1.0.3をインストールしてみた作業メモ。

仮想マシンの準備

今回はデフォルトのVPCにEC2インスタンスを作成する。VPCを作成する場合は以下リンク先などを参照。

(参考)
0から始めるAWS入門①:VPC編

システム要件

ハードウェア要件を確認する。2.4GHzのCPUが8コア、32GB RAM、200GB HDDが必要。

Hardware requirements and recommendations

OSの要件を確認する。Ubuntu 16.04 LTSを使うことにする。

Supported operating systems and platforms

サポートされるDockerのバージョンを確認する。UbuntuではDocker CEの1.12〜17.12.1がサポートされる。

Supported Docker versions

仮想マシンインスタンスの作成

Ubuntuのインスタンスを作成する。

image.png

ハードウェア要件を満たすためには、インスタンスタイプは

  • t2.2xlarge
  • m4.2xlarge
  • m5.2xlarge

あたりが候補になりそう。m5.2xlargeを使うことにする。1時間あたり0.5ドルくらい。使わないときは停止することを忘れずに。

image.png

ストレージは200GBを割り当てておく。

image.png

Elastic IPの割り当て

仮想マシンを停止するとPublic IPアドレスが変わってしまうので、Elastic IPを1つ割り当て、インスタンスに関連づけておく。

image.png

セキュリティーグループの設定

セキュリティーグループを変更して外部からアクセスできるようにする。

  • 22(SSH)
  • 同じセキュリティーグループからの全てのトラフィックを許可
  • 9443(?)
  • 8500(プライベートレジストリ)
  • 8443(ICPダッシュボード)
  • 8001(APIサーバー)
  • 80(HTTP)
  • 443(HTTPS)

image.png

上記ポートにアクセスできるIPは適宜制限することが望ましい。

仮想マシンにログイン

SSHで仮想マシンにログインする。

$ ssh -i <秘密鍵> ubuntu@<Public DNS名>

ICPのインストール

OS更新

とりあえずパッケージを更新して再起動して、もう一度ログインする。

$ sudo apt update
$ sudo apt upgrade
$ sudo apt dist-upgrade
$ sudo apt autoremove
$ sudo shutdown -r now

hostname変更

ホスト名を変更する。

(参考)
https://aws.amazon.com/jp/premiumsupport/knowledge-center/linux-static-hostname/

$ sudo hostname myicp01

再起動後も反映されるようにする。

$ sudo vi /etc/hostname
/etc/hostname
myicp01

IPv6の無効化

(ここの手順は不要かも)

ICPはIPv6に未対応なため、/etc/sysctl.confに以下を追加する。

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

以下コマンドで反映する。

$ sudo sysctl -p

/etc/hostsでIPv6の記載はコメントアウトする。

/etc/hosts
127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
#::1 ip6-localhost ip6-loopback
#fe00::0 ip6-localnet
#ff00::0 ip6-mcastprefix
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters
#ff02::3 ip6-allhosts

インストールの準備

以下の手順に従ってインストールの準備をする。

Configuring your cluster

hosts設定

/etc/hostsにプライベートIPとホスト名を書く。

/etc/hosts
127.0.0.1 localhost
172.30.1.224 myicp01

# The following lines are desirable for IPv6 capable hosts
#::1 ip6-localhost ip6-loopback
#fe00::0 ip6-localnet
#ff00::0 ip6-mcastprefix
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters
#ff02::3 ip6-allhosts

python

pythonをインストールする。2.6〜2.9のバージョンである必要がある。

$ sudo apt-get install python
$ python --version
Python 2.7.12
$

カーネルパラメータ

カーネルパラメータを設定する。

$ sudo sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144
$ echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
vm.max_map_count=262144
$ sudo sysctl -w net.ipv4.ip_local_port_range="10240 60999"
net.ipv4.ip_local_port_range = 10240 60999
$ echo 'net.ipv4.ip_local_port_range="10240 60999"' | sudo tee -a /etc/sysctl.conf
net.ipv4.ip_local_port_range="10240 60999"
$

Docker CEのインストール

以下の手順にしたがってDokcer CEをインストールする。

Get Docker CE for Ubuntu

aptがHTTPSを使うために必要なパッケージをインストールする。既にインストールされていたので何もインストールされなかった。

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

GPGキーを追加する。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

リポジトリーを追加する。

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

パッケージリストを更新する。

$ sudo apt-get update

インストール可能なDockerのバージョンを確認する。

$ apt-cache madison docker-ce
 docker-ce | 18.03.1~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 18.03.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 17.12.1~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 17.12.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 17.09.1~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 17.09.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 17.06.2~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 17.06.1~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 17.06.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 17.03.2~ce-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
 docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
$

バージョン17.12.1を指定してインストールする。

$ sudo apt-get install docker-ce=17.12.1~ce-0~ubuntu

Dockerの設定の確認

以下の手順に従ってDockerの設定を確認する。

Setting up Docker for IBM® Cloud Private

$ sudo docker info|grep "Logging Driver"
Logging Driver: json-file
WARNING: No swap limit support
$ sudo docker info  --format '{{json .SecurityOptions}}'
["name=apparmor","name=seccomp,profile=default"]
$

SSH鍵の用意

以下の手順に従ってSSH鍵を用意する。

Sharing SSH keys among cluster nodes

ここからはrootユーザーで作業する。鍵ペアを作成する。

ubuntu@myicp01:~$ sudo -i
root@myicp01:~# ssh-keygen -b 4096 -f ~/.ssh/id_rsa -N ""
Generating public/private rsa key pair.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:EuIp9VaD71GewodngPx1DVR1cq+d1YScwqLWUDzRs7g root@myicp01
The key's randomart image is:
+---[RSA 4096]----+
|         oo=ooo+=|
|     . o. + =o+++|
|    o = ++o+.+. +|
|   o + *oBoo.  oo|
|  . o +.S *.  ...|
|   . . o *E      |
|        .        |
|                 |
|                 |
+----[SHA256]-----+
root@myicp01:~#

作成した鍵ペアの公開鍵をauthorized_keysに追加。

root@myicp01:~# cat ~/.ssh/id_rsa.pub | sudo tee -a ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/fRVwMoDXvBPXayHGqnpgp/wgylE2ajw1prvwMtXZR+MkKp8/5BGIQRkbkFUQVRVWJu99255mEsZsr9DkkvOK0A2FlCNcWvmi36AKMh/dEyi0aaBiP7Q1Djr9NIYfzP+bRD14Ch3tgAnvLR1PL1o2MPqAP80a3oEAI2O8Tngzu9F/n+U2Any58kDNxjyS/HchZ8xysPwltAtVjM2XTR3xv6IbGncnyJ9sNU20ey/t0Ir5D/eEdCW8afBlR+75eO7S8Ted+AvnNyQTB0+6pK0fSguF9DVkRNUzskecMY9ERkVkEIaQz1jJutcrHdC6mPKZygtSPh+EGSMtsJEiocKV9c3Em5GGvjc/KNIBntqEuXnlQkRlEg+KZgSpfG/XBVQNjo6z0GZvKQcvtWmIG8dSsRVhEA6c3j4orE5B06SLPyl+ZjdrvF4BiUzIYxX9aKPq8NlF8w2jpWaGzm9110w3Trq1axcunXrNZ6lvpVJ8ecW+2Twqdl6quBr/3UtkpOj4G9Wpo2t00tA6nDWwIOXQLw2ykF+RxvjFD0pNRZNNf/pbgX1vO4Tk1/WDLmqY1w2zQ1T4J4UDUKoGjJV7sY3ynA81YXoGbAWSPL+PnfdXcv2QLG5d8Ytiq5C8U5jkNspMacx4Jv9IEJwMGdAgc6yTeQlusVmn2JcfO6MFpUkpZQ== root@myicp01
root@myicp01:~#

ICP-CEのインストール

Installing IBM® Cloud Private-CE

イメージをPullする。

root@myicp01:~# docker pull ibmcom/icp-inception:2.1.0.3
2.1.0.3: Pulling from ibmcom/icp-inception
605ce1bd3f31: Pull complete
507f244c4e1e: Pull complete
fc0d271abee8: Pull complete
8b23035b2408: Pull complete
000becf28498: Pull complete
51a505055ed0: Pull complete
eeac8b40b648: Pull complete
9257589649f9: Pull complete
57f69f251b87: Pull complete
b096af58451b: Pull complete
6469dffb1f1a: Pull complete
f887f375638f: Pull complete
ddb479dd83ff: Pull complete
d1e7cfd8e84c: Pull complete
3e60d99f31dc: Pull complete
6b902b94eae4: Pull complete
92ed637fa0c7: Pull complete
f8c98676d227: Pull complete
6a6e3d12c00d: Pull complete
f45d18f4da09: Pull complete
0cdf1b156f7a: Pull complete
7d93d9656bec: Pull complete
0e621a7f8ba3: Pull complete
4dc8ed5c7dc1: Pull complete
a897fe19c795: Pull complete
28a013f6fb84: Pull complete
9b54fec58347: Pull complete
4562f699b8e0: Pull complete
cf758d8c0c8f: Pull complete
9cb5171aaaf7: Pull complete
1819858aae84: Pull complete
7760333d7f17: Pull complete
2d38d82b6a1a: Pull complete
2409e1ab0c7f: Pull complete
c7867291111e: Pull complete
dbd46ec491d2: Pull complete
0d64eaf62bb7: Pull complete
ac6fbdf97ab0: Pull complete
ffa1c8223bdb: Pull complete
4beb6e290173: Pull complete
3d9f59693d5a: Pull complete
4cde2000d977: Pull complete
219907c91cd1: Pull complete
7c38bb6d16a0: Pull complete
Digest: sha256:b20e408164e020a8419cc54b37ee9c390722658ad44f4534ad3e71311e01868b
Status: Downloaded newer image for ibmcom/icp-inception:2.1.0.3
root@myicp01:~#

ディレクトリーを作成して移動。

root@myicp01:~# mkdir /opt/ibm-cloud-private-ce-2.1.0.3
root@myicp01:~# cd /opt/ibm-cloud-private-ce-2.1.0.3
root@myicp01:/opt/ibm-cloud-private-ce-2.1.0.3#
root@myicp01:/opt/ibm-cloud-private-ce-2.1.0.3#

以下のコマンドで構成ファイルを抽出する。

# docker run -e LICENSE=accept \
  -v "$(pwd)":/data ibmcom/icp-inception:2.1.0.3 cp -r cluster /data
root@myicp01:/opt/ibm-cloud-private-ce-2.1.0.3# docker run -e LICENSE=accept \
> -v "$(pwd)":/data ibmcom/icp-inception:2.1.0.3 cp -r cluster /data
root@myicp01:/opt/ibm-cloud-private-ce-2.1.0.3#

先ほど作成した鍵をcluster/ssh_keyに上書きコピーする。

root@myicp01:/opt/ibm-cloud-private-ce-2.1.0.3# cp ~/.ssh/id_rsa ./cluster/ssh_key
root@myicp01:/opt/ibm-cloud-private-ce-2.1.0.3#

cluster/hostsを編集する。プライベートIPを記載する。

[master]
172.30.1.224

[worker]
172.30.1.224

[proxy]
172.30.1.224

#[management]
#4.4.4.4

#[va]
#5.5.5.5

cluster/config.yamlを編集し、外部からアクセスできるようにElastic IPを指定する。Kibanaのインストールも有効にしておく。

cluster_lb_address: 18.179.83.130
proxy_lb_address: 18.179.83.130
kibana_install: true

clusterディレクトリーに移動し、以下のコマンドでインストールを実行する。そこそこの時間がかかり、その途中でネットワークが切れたら困るので、screenコマンドを起動してからやるとよい。

# docker run --net=host -t -e LICENSE=accept \
  -v "$(pwd)":/installer/cluster ibmcom/icp-inception:2.1.0.3 install
root@myicp01:/opt/ibm-cloud-private-ce-2.1.0.3# cd cluster
root@myicp01:/opt/ibm-cloud-private-ce-2.1.0.3/cluster# docker run --net=host -t -e LICENSE=accept \
> -v "$(pwd)":/installer/cluster ibmcom/icp-inception:2.1.0.3 install

PLAY [Checking Python interpreter] ********************************************************************************************************************

TASK [Checking Python interpreter] ********************************************************************************************************************
changed: [172.30.1.224]

PLAY [Checking prerequisites] *************************************************************************************************************************

TASK [Gathering Facts] ********************************************************************************************************************************
ok: [172.30.1.224]

TASK [docker-engine-check : Getting Docker engine version] ********************************************************************************************
changed: [172.30.1.224]

・・・
(省略)
・・・

PLAY [Performing post deployment actions] *************************************************************************************************************

TASK [shell] ******************************************************************************************************************************************
changed: [localhost]

PLAY RECAP ********************************************************************************************************************************************
172.30.1.224               : ok=162  changed=80   unreachable=0    failed=0
localhost                  : ok=69   changed=47   unreachable=0    failed=0


POST DEPLOY MESSAGE ***********************************************************************************************************************************

The Dashboard URL: https://18.179.83.130:8443, default username/password is admin/admin

Playbook run took 0 days, 0 hours, 19 minutes, 52 seconds

root@myicp01:/opt/ibm-cloud-private-ce-2.1.0.3/cluster#

インストールが成功したら、ICPダッシュボードのURLが表示されるので、ブラウザでアクセスする。エラーになった場合、まだ完全に起動していない可能性もあるので気長に待つこと。

image.png

補足

インストールの途中で失敗したら、一度アンインストールして、おかしいところを直して再トライする。インストールコマンドに-vvvオプションをつけると有益な情報が表示される、かもしれない。アンインストールのコマンドは以下。

# docker run -e LICENSE=accept --net=host \
  -t -v "$(pwd)":/installer/cluster \
  ibmcom/icp-inception:2.1.0.3 uninstall
# service docker restart

Uninstalling IBM® Cloud Private-CE

参考リンク

Installing IBM® Cloud Private-CE

IBM Cloud Private: Kubernetesをオンプレミス(IaaS)に導入してみる

Run IBM Cloud Private on Amazon Web Services (AWS) cloud platform

Installing IBM Cloud private (ICP) in an AWS EC2 Environment

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3