株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

IBM Cloud Private 3.1.0 インストール方法(RHEL編)

ICP3.1インストール_<a class="keyword" href="http://d.hatena.ne.jp/keyword/RHEL">RHEL</a>編.md

今回はIBM Cloud Private 3.1.0(以下、ICPを記載します)のインストール方法をご紹介します。 ICPはいくつかのエディションがあります。

  • Community Edition
  • Cloud Native Edition
  • Enterprise Edition

今回はCloud Native Editionを使ってインストールをしていきます。 Community Editionは無償ですが本番用途では使用できないなど制約があります。


ICPの情報リソース

現段階ではあまり情報が公開されていません。IBMのKnowledge Centerがさくっとみられる情報です。
https://www.ibm.com/support/knowledgecenter/en/SSBS6K/product_welcome_cloud_private.html

今回はここにあるインストール手順を参考にインストールを行います。
※記載の手順と順番が異なる部分があります。あらかじめご了承ください。


構築する環境

2台のサーバーを使いICPをインストールします。

1台目:Master node (master,management,etcd,Proxy)
2台目:Worker node (Worker)
※インストール手順では、1台目を「Master」、2台目を「Worker」を表記します。

サーバーはどちらも同一スペックを用意しています。

OS RedHat Endterprise Linux 7.4
物理/仮想 仮想
CPU(Core) 8
Memory 24GB
Disk 300GB
NIC 1つ

FirewallSELinuxについては無効にしています。


利用するファイル類の準備

今回はライセンス品になりますので、IBM社のサイトからダウンロードしてきます。
ICP用のDockerについてもIBM社から提供されますので、ICP本体とDockerファイルをダウンロードします。

  • IBM Cloud Private 3.1.0 for Linux (x86_64) Docker (CNW6SEN )
    Size : 8,839MB
  • IBM Cloud Private 3.1.0 Docker for Linux (x86_64) (CNVP4EN )
    Size : 141MB

今回これらのファイルは「/root/」に配置しています。

[root@tokyo-master01 ~]# ls -l /root total 9640628 -rw-------. 1 root root 1992 Oct 18 11:17 anaconda-ks.cfg -rw-r--r--. 1 root root 9268925381 Oct 2 10:19 ibm-cloud-private-x86_64-3.1.0.tar.gz -rwxr-xr-x. 1 root root 148057785 Oct 2 09:50 icp-docker-18.03.1_x86_64.bin -rw-r--r--. 1 root root 455008787 Sep 12 22:52 mcm-3.1.0_x86.tgz

※ ファイル名:mcm-3.1.0_x86.tgz は今回使用しません。


OSインストールで気を付けること

OSインストールではDiskパーティションの構成に気を付ける必要があります。 具体的には、「/」を250GB以上割り当てておかないとインストール時にWarningがでます。テスト用のインストールであれば、150GB程度でも動作しております。
今回の環境では下記のようにパーティションを設定しています。

[root@tokyo-master01 ~]# fdisk -l Disk /dev/sda: 322.1 GB, 322122547200 bytes, 629145600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000c5d5b Device Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 629137407 313519104 8e Linux LVM Disk /dev/mapper/rhel_tokyo--master01-root: 268.4 GB, 268435456000 bytes, 524288000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/rhel_tokyo--master01-swap: 23.4 GB, 23416799232 bytes, 45735936 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/rhel_tokyo--master01-home: 29.2 GB, 29183967232 bytes, 56999936 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes

インストール(Master/Worker共通)

すべてrootでログインして作業しています。


共通でやること

  • Pythonのインストール
  • Dockerのインストール
  • SSH鍵の交換
  • /etc/hostsを書く
  • SElinuxをとめる
  • Firewallをとめる
  • 再起動

Pythonのインストール

Pythonがインストールされていない場合はPythonを先にインストールします。
Pythonは3系にも対応しています。3系を利用する場合は「Python」コマンドでPython3が呼び出されるようにリンクを作成しておく必要があります。


Dockerのインストール


Dockerインストーラへの実行権限付与

ダウンロードしてきたDockerのインストーラには実行権限がないので実行権限を付与します(上記のファイルリスト上ではすでに権限を付与しています)

cd ~/ chmod +x icp-docker-18.03.1_x86_64.bin

Dockerのインストール

./icp-docker-18.03.1_x86_64.bin --install systemctl start docker systemctl enable docker

SSH鍵の交換


SSH鍵の作成

ssh-keygen -b 4096 -f ~/.ssh/id_rsa -N ""

許可された鍵のリストに追加

cat ~/.ssh/id_rsa.pub | sudo tee -a ~/.ssh/authorized_keys

各ノード間でSSH公開鍵をコピー

##サンプル ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<node_ip_address> ssh-copy-id -i ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx ssh-copy-id -i ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx

SSHの再起動

systemctl restart sshd

パスワードなしでお互いにログインできるか確認

ssh (Master or Worker IP)

SSH接続後、抜けるのを忘れずに行う

exit

/etc/hostsを指定する

/etc/hostsでMasterとWorkerが名前解決できるように設定します。

vi /etc/hosts ############# 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 # ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # コメントアウト ## 追加する MasterIP MasterHostname WorkerIP WorkerHostName #############

SELinuxを止める

今回はざっくりと止めます。

vi /etc/selinux/config ########### # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # enforcingからdisabledに変更する # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted ###########

Firewallも止める

Firewallも止めてしまいます。

systemctl stop firewalld systemctl disable firewalld

再起動

OSを再起動します。

reboot

インストール(Master編)

ここから先はWorkerで作業をすることはありません。Masterのみで実行していきます。


DokcerコンテナのイメージをMasterに取り込む

cd ~/ tar xf ibm-cloud-private-x86_64-3.1.0.tar.gz -O | sudo docker load

※ 環境にもよりますが10~20分かかります。


取り込んだイメージの確認

docker images

※重要※イメージ名を確認

イメージ名に ibmcom/icp-inception- が含まれるイメージを確認してメモします。

docker images | grep ibmcom/icp-inception-
ibmcom/icp-inception-amd64 3.1.0-ee 481dbd525a28 4 weeks ago 744MB

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

mkdir /opt/ibm-cloud-private-3.1.0 cd /opt/ibm-cloud-private-3.1.0/

イメージから構成ファイルを抽出

docker run -v $(pwd):/data -e LICENSE=accept ibmcom/icp-inception-amd64:3.1.0-ee cp -r cluster /data

ここで指定している ibmcom/icp-inception-amd64:3.1.0-ee が手順「※重要※イメージ名を確認」で確認したイメージ名になります。


作成されたフォルダ内のファイルリストを確認

ls -la /opt/ibm-cloud-private-3.1.0/cluster ### total 28 drwxr-xr-x 3 root root 4096 Sep 27 15:03 . drwxr-xr-x 3 root root 4096 Sep 27 15:03 .. -rw-r--r-- 1 root root 7452 Sep 27 15:03 config.yaml -rw-r--r-- 1 root root 104 Sep 27 15:03 hosts drwxr-xr-x 3 root root 4096 Sep 27 15:03 misc -r-------- 1 root root 1 Sep 27 15:03 ssh_key ###

クラスター内の各ノードのIPアドレスをすべて指定 /<installation_directory>/cluster/hosts ファイルに追加します。

ナレッジ︓ https://www.ibm.com/support/knowledgecenter/SSBS6K_3.1.0/installing/hosts.html

vi /opt/ibm-cloud-private-3.1.0/cluster/hosts
[master] xxx.xxx.xxx.xxx # MasterのIPを入力 [worker] xxx.xxx.xxx.xxx # WorkerのIPを入力 [proxy] xxx.xxx.xxx.xxx # MasterのIPを入力 #[management] #4.4.4.4 #[va] #5.5.5.5

※今回はProxyをMasterにインストールしています。


ICP ClusterにSSH秘密鍵をコピー

cp /root/.ssh/id_rsa /opt/ibm-cloud-private-3.1.0/cluster/ssh_key

インストールディレクトリに移動し、Imageフォルダを作成

cd /opt/ibm-cloud-private-3.1.0 mkdir -p cluster/images

作成したフォルダにインストールイメージファイルをコピー

mv ~/ibm-cloud-private-x86_64-3.1.0.tar.gz cluster/images/

コピーされていることを確認

ls cluster/images/

環境のデプロイ

cd ./cluster sudo docker run --net=host -t -e LICENSE=accept -v "$(pwd)":/installer/cluster ibmcom/icp-inception-amd64:3.1.0-ee install

ここで指定している ibmcom/icp-inception-amd64:3.1.0-ee が手順「※重要※イメージ名を確認」で確認したイメージ名になります。

インストールが完了すると下記のメッセージが表示されます。

PLAY RECAP ********************************************************************************************* xxx.xxx.xxx.xx0 : ok=164 changed=82 unreachable=0 failed=0 xxx.xxx.xxx.xx1 : ok=130 changed=62 unreachable=0 failed=0 localhost : ok=267 changed=163 unreachable=0 failed=0 POST DEPLOY MESSAGE ************************************************************************************ The Dashboard URL: https://xxx.xxx.xxx.xx0:8443, default username/password is admin/admin Playbook run took 0 days, 0 hours, 31 minutes, 27 seconds

管理コンソールログイン

インストール完了時に表示されたURLにWebブラウザでアクセスしてログインします。

  • ログインユーザー: admin
  • パスワード: admin

20181030_21h52_57




注意事項


docker loadするDockerイメージ名について

今回、Docker loadで下記のイメージ名を指定しています。 ibmcom/icp-inception-amd64:3.1.0-ee
[:]以下の値がバージョンになるのですが、このバージョンの指定が間違っていると latest のイメージをDocker Hubからダウンロードしてきてしまいます。
Docker Hubのイメージではインストールができないため、インストール時にエラーが発生してしまいます。 必ず、イメージをロード後、docker images | grep ibmcom/icp-inception- で保持しているイメージを確認してください。
IBM Knowledge Centerで指定しているイメージが今回利用したイメージ名と異なっているのでご注意ください。


Dockerのインストールに失敗したとき

Dockerのインストールに失敗することがあります。失敗の原因はパッケージが不足しているためですが、通常、yumが使える環境であれば自動的にパッケージをインストールします。
yumが利用できるように設定していただくか、インストールイメージもしくはDVDをマウントしていただいてDiskをyumリポジトリとして利用できるようにしていただければと思います。



今回の内容は以上になります。次回はMulti Cloud Managerという製品を今回作成した環境にインストールしていきたいと思います。(すずきけ)