はじめに
2018年9月にV3.1.0がリリースされたので,無償版(Community Edition)をシングル構成でインストールしてみます。
本記事は2018年10月17日執筆時点のものです。公式マニュアルは以下を参照ください。
参考: Installing IBM® Cloud Private-CE
参考: ICP CloudNative Edition(有償ライセンス版) システム要件
ICPの概要について興味のある方は,以下も合わせて参照ください。
2017年12月投稿記事: IBM Cloud Private: Kubernetesをオンプレミス(IaaS)に導入してみる
事前に準備するもの
- Kubernetesクラスターを構成するインスタンス (VM1つ) を用意
- OS: Ubuntu Server 16.04 LTS
- vCPU: 16core
- Memory: 32GB
- Disk: 100GB HDD
※今回は開発用途無償版を使用します
いまからやること
ざっくりやることを列挙すると以下です。
-
- 必要となるコンポーネントを取得・インストール
- Docker CE
- Python
- socat
- ICP CE (インストール用のDockerイメージ)
-
- 環境セットアップ
- ssh用key-pair
- $ICP_HOME/cluster/hosts
- $ICP_HOME/cluster/config.yaml
- /etc/hosts
-
- ICP Kubernetes クラスターを構築
- docker run xxx
[本編]ICP CE インストール手順
1) 必要となるコンポーネントを取得・インストール
Docker CE (V 18.03.1)
# apt-get update
# apt-get install apt-transport-https ca-certificates curl software-properties-common
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stable"
# apt-get update
# apt-cache madison docker-ce
# apt-get install docker-ce=18.03.1~ce-0~ubuntu
# docker version
Python (V 2.7.12)
# apt install python-minimal
# python --version
socat (V 1.7.3.1)
# apt install socat
ICP インストールイメージを取得 (V 3.1.0)
ICP(K8s)を構築するためのインストールイメージ(約800MB)をDockerHubから取得します。
# docker pull ibmcom/icp-inception:3.1.0
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ibmcom/icp-inception 3.1.0 cb1028c2975c 5 days ago 746MB
2) 環境のセットアップ
ICP用の構成ファイルを抽出
以下3つの手順を実行します。
- ICPクラスターを構成・管理するための任意ディレクトリを作成
- ICPクラスター作成用の構成ファイル群を抽出
- 構成ファイル群を確認
ICPクラスターを構成・管理するための任意ディレクトリを作成
# mkdir /opt/icp310ce
# cd /opt/icp310ce
ICPクラスター作成用の構成ファイル群を抽出
# docker run -e LICENSE=accept -v "$(pwd)":/data ibmcom/icp-inception:3.1.0 cp -r cluster /data
構成ファイル群を確認
# cd /opt/icp310ce/cluster
# ls
config.yaml hosts misc ssh_key
Ansibleのssh用にkey-pairを作成,配備
ICPを自動構築するためのAnsible用のPlaybookがあります。今回はAnsible用にkey-pairを用意しますが,key-pairの代わりにパスワードを使用させることも可能です。
# ssh-keygen -b 4096 -f ~/.ssh/id_rsa -N ""
# cat ~/.ssh/id_rsa.pub | tee -a ~/.ssh/authorized_keys
# cp ~/.ssh/id_rsa /opt/icp310ce/cluster/ssh_key
参考: Sharing SSH keys among cluster nodes
ICPを構成するNode(Private IPアドレス)を指定
ICP Kubernetesクラスターを構成するNode群で疎通できる Private IP (今回は 10.132.75.86)
を指定します。
シングル構成なので,master/worker/proxyの役割を1VMで担う構成をとります。
# vi /opt/icp310ce/cluster/hosts
[master]
10.132.75.86
[worker]
10.132.75.86
[proxy]
10.132.75.86
#[management]
#4.4.4.4
#[va]
#5.5.5.5
※management/vaノードは使用しないのでコメントアウトのまま
ICPのAdmin Console (ダッシュボード) 用の Public IP を指定
Admin Consoleに外部からアクセスするための Public IP (今回は 169.56.42.72)
を指定します。
# vi /opt/icp310ce/cluster/config.yaml
以下の2つの項目を見つけて,コメントアウトを外して,IPアドレスを指定する
before:
# cluster_lb_address: none
# proxy_lb_address: none
after:
cluster_lb_address: 169.56.42.72
proxy_lb_address: 169.56.42.72
/etc/hostsの編集
# vi /etc/hosts
- ループバックアドレスをコメントアウト
- IPアドレス,ホスト名を1行追加
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
# 127.0.1.1 k8s-icp-ce310.capsmalt.com k8s-icp-ce310
10.132.75.86 k8s-icp-ce310
3) ICP Kubernetesクラスターを構築
最後に docker run
でICP Kubernetesクラスターを構築します。
クラスター完成には15〜30分ほど要します。
# cd /opt/icp310ce/cluster
# docker run --net=host -t -e LICENSE=accept -v "$(pwd)":/installer/cluster ibmcom/icp-inception:3.1.0 install -vvv | tee install.log
以下のような出力が確認できればOKです。
..
PLAY RECAP *********************************************************************
10.132.75.86 : ok=174 changed=97 unreachable=0 failed=0
localhost : ok=265 changed=161 unreachable=0 failed=0
POST DEPLOY MESSAGE ************************************************************
The Dashboard URL: https://169.56.42.72:8443, default username/password is admin/admin
Playbook run took 0 days, 0 hours, 31 minutes, 46 seconds
問題があった場合は, 以下を確認ください
/opt/icp310ce/cluster/install.log
- 既知の問題と対策はこちら ==> Troubleshooting and support
ICP Admin Console (GUI) へのアクセス
ブラウザで, https://xxx.xxx.xxx.xxx:8443
にアクセスしてください。
ログインユーザー名/パスワードは,admin/admin
です。
xxx部は,Admin Console (ダッシュボード) 用に指定した Public IPです。
これらの設定箇所は,/opt/icp310ce/cluster/config.yaml
にあります。
・・
default_admin_user: admin # <== ログインユーザー名
default_admin_password: admin # <== ログインパスワード
・・
cluster_lb_address: 169.56.42.72 # <== Admin Console の IPアドレス
・・
アクセス例:
https://169.56.42.72:8443
※例外追加を必要とする旨の画面が出たら,下図のように「エラー内容 > 例外を追加... > セキュリティ例外を承認」 のように進めてください。
まとめ
今回は2018年9月にリリースされた ICP V3.1.0の無償版(Community Edition, CE)をシングル構成でインストールしてみました。
一部は無償版(CE)では試すことができませんが,Kubernetesを利用する上で必要になる機能群がビルトインされていたり,HelmChartで容易に導入できるようになっています。
ぜひ試してみてください。
- すぐに利用できる機能一覧(一部抜粋)
- モニタリング機能 (Prometheus,Grafana,AlertManager)
- ロギング機能 (Elastic Stack)
- CI/CD機能 (JenkinsベースのCI/CDおよび開発ツール)
- HelmChart カタログ機能
- 脆弱性スキャン機能 ※CEでは使用不可
- K8sクラスターの自動構築,拡張機能
- (New) 複数K8sクラスター管理機能 ※CEでは使用不可
- (New) Istio V1.0 組込み ※Tech Preview