Help us understand the problem. What is going on with this article?

無償版 Kubernetes インストール手順 (ICP CE V3.1.0)

More than 1 year has passed since last update.

はじめに

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

※今回は開発用途無償版を使用します

いまからやること

ざっくりやることを列挙すると以下です。

  • 1) 必要となるコンポーネントを取得・インストール
    • Docker CE
    • Python
    • socat
    • ICP CE (インストール用のDockerイメージ)
  • 2) 環境セットアップ
    • ssh用key-pair
    • $ICP_HOME/cluster/hosts
    • $ICP_HOME/cluster/config.yaml
    • /etc/hosts
  • 3) 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

参考: Supported Docker versions

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
/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
/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行追加
/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
# 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にあります。

/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

image.png

※例外追加を必要とする旨の画面が出たら,下図のように「エラー内容 > 例外を追加... > セキュリティ例外を承認」 のように進めてください。
image.png
image.png

まとめ

今回は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
capsmalt
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした