3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

V2.1.0からV2.1.0.1にマイグレーションしてみた (Kubernetes / IBM Cloud Private)

Last updated at Posted at 2018-01-16

はじめに

Kubernetes環境(IBM Cloud Private)を新しいバージョンにマイグレーションしてみたいと思います。
今回は,手順をざっと追ってみます。

適宜公式ページ(Upgrading from IBM® Cloud Private version 2.1.0 to 2.1.0.1) を参照ください。

対象環境

  • IBM Cloud Private Community Edition (開発用途無償版) : V2.1.0

まだICPを導入しておらず,これから新規に V2.1.0.1 をインストールする場合は,以前の Qiita記事 を参考にバージョンを読み替えてください。

ちなみに,V2.1.0.1では EvictionPolicy の設定が不要になりました。

/etc/k8s-icp/cluster/hosts
### before (as of V2.1.0)

[master]
10.132.75.83    kubelet_extra_args='["--eviction-hard=memory.available<100Mi,nodefs.available<2Gi,nodefs.inodesFree<5%", "--image-gc-high-threshold=100%", "--image-gc-low-threshold=100%"]'
...


### after (as of V2.1.0.1)

[master]
10.132.75.83
...

参考: Installing IBM Cloud Private-CE
参考: ICPクラスターのhostsの設定

早速マイグレーションしてみる

超シンプルな5ステップです。

  1. インストールイメージを取得
  2. 新しくディレクトリを作成
  3. 各構成ファイルをコピー
  4. config.yamlに各自の構成を追記
  5. V2.1.0.1をインストール

以下,手順に進みます。
クラスターを複数ノードで構成している場合は,Bootノードで実行します。
(今回はシングル構成です)

1) インストールイメージを取得

docker pullでICPのインストールイメージ(Dockerイメージ)を取得します

# docker pull ibmcom/icp-inception:2.1.0.1

# docker images

以下のようなイメージが追加されていればOK
...
ibmcom/icp-inception                          2.1.0.1             ee6cc00ff945        4 weeks ago         327MB
...

2) 新しくディレクトリを作成

以前,V2.1.0をインストールした際 は,/etc/k8s-icpというディレクトリを作っていました。

今回は,V2.1.0.1用に,/etc/k8s-icp-2.1.0.1 ディレクトリを作成します。

# mkdir /opt/k8s-icp-2.1.0.1

# cd /opt/k8s-icp-2.1.0.1

次に,構成ファイルを抽出します。
構成ファイルを含んだclusterディレクトリが生成されます。

# docker run -e LICENSE=accept -v "$(pwd)":/data ibmcom/icp-inception:2.1.0.1 cp -r cluster /data

# ls
cluster

3) 各構成ファイルをコピー

古いICPクラスターディレクトリから,2)で作ったV2.1.0.1用のディレクトリに構成ファイルをコピーします。

from: /opt/k8s-icp/cluster/cfc-certs
to: /opt/k8s-icp-2.1.0.1/cluster

# cp -r /opt/k8s-icp/cluster/cfc-certs /opt/k8s-icp-2.1.0.1/cluster
# cp -r /opt/k8s-icp/cluster/cfc-keys /opt/k8s-icp-2.1.0.1/cluster
# cp -r /opt/k8s-icp/cluster/cfc-components /opt/k8s-icp-2.1.0.1/cluster
# cp /opt/k8s-icp/cluster/hosts /opt/k8s-icp-2.1.0.1/cluster
# cp /opt/k8s-icp/cluster/ssh_key /opt/k8s-icp-2.1.0.1/cluster

4) config.yamlに各自の構成を追記

UIへのアクセスIPや,バックアップバージョンなどを指定します。

/opt/k8s-icp-2.1.0.1/cluster/config.yaml
default_admin_password: YOUR_PASSWORD   // <== 任意のパスワードを設定
cluster_access_ip: 10.132.75.83         // <== IBM Cloud PrivateのコンソールアクセスIP
proxy_access_ip: 10.132.75.83           // <== リクエストを受け付けるプロキシーIP
glusterfs: false                        // <== falseを指定
backup_version: 2.1.0                   // <== バックアップバージョンを追加

この他,クラスター構成をいじっている場合は同様に修正します。

参考: config.yamlファイル

5) V2.1.0.1をインストール

新バージョンをインストールします。
以下を順に行います。

5-1) クラスターアップグレードの準備
5-2) Kubernetesをアップグレード
5-3) 管理サービスをアップグレード

5-1) クラスターアップグレードの準備

# docker run -e LICENSE=accept --net=host --rm -t -v "$(pwd)":/installer/cluster ibmcom/icp-inception:2.1.0.1 upgrade-prepare

5-2) Kubernetesをアップグレード

# docker run -e LICENSE=accept --net=host --rm -t -v "$(pwd)":/installer/cluster ibmcom/icp-inception:2.1.0.1 upgrade-k8s

5-3) 管理サービスをアップグレード

# docker run -e LICENSE=accept --net=host --rm -t -v "$(pwd)":/installer/cluster ibmcom/icp-inception:2.1.0.1 upgrade-mgtsvc


以下のように,エラー無くダッシュボードURLが出力されれば完了です。
.
.
PLAY RECAP *********************************************************************
10.132.75.83               : ok=3    changed=1    unreachable=0    failed=0
localhost                  : ok=238  changed=78   unreachable=0    failed=0


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

The Dashboard URL: https://10.132.75.83:8443, default username/password is xxxxx/xxxxx

Playbook run took 0 days, 0 hours, 21 minutes, 33 seconds

※アップグレードしている最中に,以下のように何度かリトライする場合があります。
※タイムアウトでエラー終了した場合は,再度コマンド実行してみてください。

TASK [cloudant : Deleting cloudant pods] ***************************************
changed: [localhost]
FAILED - RETRYING: Waiting for cloudant to start (50 retries left).
FAILED - RETRYING: Waiting for cloudant to start (49 retries left).
FAILED - RETRYING: Waiting for cloudant to start (48 retries left).
FAILED - RETRYING: Waiting for cloudant to start (47 retries left).
FAILED - RETRYING: Waiting for cloudant to start (46 retries left).
FAILED - RETRYING: Waiting for cloudant to start (45 retries left).

参考: トラブルシューティング

V2.1.0.1のコンソールにログイン

ブラウザで UI URLに接続 (インストール成功時に表示されたものです)
私の場合,
URL: https://10.132.75.83:8443 です。
Username: admin
Password: xxxxxx

メニューが整理されて分かりやすくなっています。
image.png

namespaceでフィルターして,Workloadを閲覧できるようになっています。
image.png

まとめ

今回は IBM Cloud Private をV2.1.0からV2.1.0.1にマイグレーションする手順を追ってみました。
手順はものすごく簡単でした。

V2.1.0.1では細かなユーザビリティ向上を含めて,機能追加やアップデートが行われています。
UI面で分かり易いのは,マルチテナント(例えば,組織や複数人)で利用する場合に必要となる
ロールベースアクセス制御 の使い勝手が向上している点かと思います。
試してみたい方は,LDAPを利用してUser/Teamとnamespaceを定義することでアクセス制御を確認できます。

V2.1.0.1のアップデート(箇条書き)はこちらを参照ください。

マイグレーション手順は簡単ということが分かりましたが,本番システムをイメージすると,
実運用におけるマルチノード構成の場合にどうやってマイグレーションするのか?
など気になることがあると思います。

また細かな運用ノウハウについては,別途投稿しようと思います。

3
0
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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?