IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた（3.IKSの準備）

#はじめに

「[IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた](https://qiita.com/shimauma_Zzzzz/items/9a513abdf02d11fff55b)」の　第3回です。
ここでは、 IBM Cloud kubernetes service (IKS) のセットアップについて記載します。
図の赤枠の部分です。

![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/c901ebce-377c-9909-9746-47dd4687188f.png)



実施内容は以下の通りです。

- IKS のオーダー
- kubernetes Config 設定
- kubernetes dashboard へのアクセス（オプション）
- kubernetes terminal へのアクセス（オプション）
- クラスターのバージョンアップ（オプション）

#IKS のオーダー

IKS の無料プランをオーダーするためには 「[IBM Cloud 従量課金アカウント](https://cloud.ibm.com/docs/account?topic=account-accounts&locale=ja)」が必要になります。
従量課金アカウントになれば 無料の IKS プランが選べるという少し変わった体系ですね。
（ライトアカウントではライトプラン（無料）が使えますが、
ライトプランではない無料プランは 従量課金アカウントがいるようです。
　なお、初回従量課金アカウントにアップグレードした際、 $200 のクレジットが受け取れるようです。（2020/08時点））

アカウントが準備できれば、「[IBM Cloud Login 画面](https://cloud.ibm.com/login)」からログインしてください。

ダッシュボードが表示されます。

![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/a3287707-a115-aae3-05d6-56f4e829f936.png)

上部の 「カタログ」または、右上の 「リソースの作成」　を押します。
カタログが表示されます。
表示されたカタログの検索画面で 「kubernetes」と入力して検索してください。

![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/a7a5516f-964c-bd39-1ab0-ac973f6ab8a6.png)

表示された「Kubernetes Service」を選択します。
作成画面が表示されるため、　下図のように選択を行います。

プランの選択　　　　　　　　　　：　無料
オーケストレーション・サービス　：　kubernetes
クラスター名　　　　　　　　　　：　なんでも可
リソース・グループ　　　　　　　：　デフォルト

![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/cd3bda71-b82e-7320-3843-72470c5d7608.png)

その後、右下の　「合計月額」が　**無料** であることを確認し、
「作成」ボタンを押します。

#kubernetes Config 設定

クラスターの作成ボタンを押すと、作成中の状態ですが、クラスター画面が表示されます。
「Accessing your cluster」に表示されているコマンドをコピー＆ペーストで実行していくことになります。
（※ ブラウザの IKS Console を利用する方はスキップしてください）

![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/05cdb281-bb95-98e9-df37-e149a9cfc8c1.png)


IBMCloud CLI を導入したサーバーで、画像のログインコマンドを入力してログインします。
（詳細は [第2回](https://qiita.com/shimauma_Zzzzz/items/99d71965dad142f93e5b#ibm-cloud-%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3) 参照）

その後、クラスターのコンフィグを CLI に設定します。 (※これはクラスター作成完了後しかできないようです）

```console:config設定
# ibmcloud ks cluster config --cluster bss9xxxxxxxxxe61qdg

Kubernetes removed deprecated APIs, which impacts clusters that run Kubernetes version 1.16, OpenShift version 4.4, or later. For more information, see <http://ibm.biz/k8s-1-16-apis>

OK
bss9xxxxxxxxxe61qdg の構成は正常にダウンロードされました。

bss9xxxxxxxxxe61qdg のコンテキストを現在の kubeconfig ファイルに追加しました。
これで、クラスターに対して「kubectl」コマンドを実行できます。 例えば、「kubectl get nodes」を実行します。
```

せっかくなので `kubectl get nodes` をやってみます。

```console:get_nodes
# kubectl get nodes -o wide

NAME            STATUS   ROLES    AGE     VERSION       INTERNAL-IP     EXTERNAL-IP      OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
10.144.183.22   Ready    <none>   5m38s   v1.17.9+IKS   10.144.183.22   16x.xx.xx.xxx   Ubuntu 16.04.6 LTS   4.4.0-186-generic   containerd://1.3.4
```

また、 `kubectl config get-context` を行うと、今回のクラスターが選択されていることがわかります。

```console:選択済みcluster
# kubectl config get-contexts
CURRENT   NAME                                    CLUSTER                                 AUTHINFO                                                                          NAMESPACE
          kubernetes-the-hard-way                 kubernetes-the-hard-way                 admin                                        
*         mycluster-free01/bss9xxxxxxxxxe61qdg   mycluster-free01/bss9xxxxxxxxxe61qdg   shimauma@xx.xxx.com/ac3faxxxxxxxxxxxxxx120831/iam.cloud.ibm.com-identity   default
```

なお、 kubernetes-the-hard-way はオンプレ（自宅）クラスターです。（よって大多数の人には表示されません）
自宅クラスターと IKS クラスターを選択できるようになっています。

#kubernetes dashboard へのアクセス（オプション）

kubernetes クラスターの Web コンソールの右上に、「kubernetes dashboard」というボタンがあるので、
それを押します。

![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/ba255801-3fc3-e7ed-3920-b9bd18c072f0.png)

すると、新しいタブで kubernetes dashboard が表示されます。

![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/fdce9355-cda4-67a3-708a-9e8fefb6bb51.png)

上の図は、Deployment や Pod 等作成後の画面ですが、同様の画面が表示されるため、
通常の kubernetes dashboard と同じように使用できます。
ただ、この一連の記事の中では基本的に CLI で実施するため、　kubernetes dashboard の説明は割愛します。


#kubernetes terminal へのアクセス（オプション）

ブラウザで kubernetes の CLI コンソールを使えるようにします。
一旦インストール後、再度アクセスするとコンソールが開きます。

kubernetes クラスターの Web コンソールの右上に、「アクション...」というボタンがあるので、
それを押し、「Web端末」ます。

![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/b017434f-5795-52a7-dac4-9c135e2a7f6c.png)

kubernetes Terminal のインストール画面が表示されるため、「インストール」を押します。

![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/f3a02fec-3c95-157b-5594-6554bd7975ff.png)

何事もなかったかのように元の画面に戻るのですが、もう一度　「アクション...」＞「Web端末」を選択すると
ブラウザ下部に Terminal が表示され、コマンド入力ができるようになります。
なお、英語メッセージにもある通り、このコンソール上で作成した yaml ファイル等はセッション終了すると
消えてしまう可能性があるようなので注意が必要です。

![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/7132b831-e868-9c9f-5bfc-9e08c4f0248b.png)



#クラスターのバージョンアップ（オプション）

オプションですが、　興味があったのでやってみました。
クラスターのバージョンアップです。別に実施しなくても全く問題ないです。

2020/08 時点では、 1.17.9_1534 でプロビジョニングされますが、
下記の手順を実施することにより、 1.18.6_1522 にバージョンアップできます。

kubernetes クラスター画面の右上のボタンから、 「アクション...」＞「バージョンの更新」を選択します。

![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/0568c88a-6d84-c3e7-42d3-92fe691fdae0.png)


クラスターのバージョン選択画面が表示されるため、バージョンを選択し、「更新」ボタンを押します。

![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/1bfc7ac3-3e7c-9dcf-f2bc-4fcde3e33429.png)

バージョンの更新メッセージが出るため、×を押して閉じます。

![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/86bf3aab-280b-24db-3338-e6f6060ccd9c.png)

クラスターのコンソール上では、　ワーカー・ノードも更新するようにとのメッセージとともに、
バージョン欄では `1.17.9_1534 --> 1.18.6_1522 (Pending)` と表示されています。
メッセージでは1時間後とありましたが、実際には３０～４０分程度という印象でした。

![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/52a72d46-b250-783c-ee64-345fcde7eff3.png)

上図のバージョン部分が、 1.18.6_1522 だけになったら Controller ノードの更新は完了です。

次に左側のメニューから、「ワーカー・ノード」を選択します。
表示されたワーカー・ノードにチェックを入れると、　青い帯のメニューが表示されるため、
「更新」ボタンを押します。

![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/8ff7640e-ebc9-2c35-697c-1cff80c11af1.png)

ワーカー・ノードのバージョンの更新画面が表示されるため、「更新」ボタンを押します。

![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/8084114b-8f5b-d10d-f62b-c0b9c65f220d.png)

右上に、ポップアップで開始された旨のメッセージが表示されます。

![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/56fbb9a3-7925-62b7-3042-8b091da85449.png)

また、ワーカー・ノード画面のバージョンの部分が、Pending になります。

![23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/8e683121-d42a-e40e-a567-1f08c89569d2.png)

この部分が、　新しいバージョンのみの表記になれば完了です。


---
お疲れ様でした。
今回はここまでとし、次回は [4. IBM Cloud Container Registry の準備](https://qiita.com/shimauma_Zzzzz/items/97480242c969ddd0f9cd) を実施します。

←：[IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた（2.IBM Cloud CLI準備）](https://qiita.com/shimauma_Zzzzz/items/99d71965dad142f93e5b)
↑：[IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた（1.概要）](https://qiita.com/shimauma_Zzzzz/items/9a513abdf02d11fff55b)
→：[IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた（4. IBM Cloud Container Registry の準備）](https://qiita.com/shimauma_Zzzzz/items/97480242c969ddd0f9cd)

---