IKS(IBM Cloud Kubernetes Service) の更新(v1.22 -> 1.24)

#### はじめに

IKS (IBM Cloud Kubernetes Service) のバージョン更新(1.22 -> 1.24) を実施する機会がありましたので参考までに記載します。

参考：
・[Updating clusters, worker nodes, and cluster components](https://cloud.ibm.com/docs/containers?topic=containers-update)

---


#### 環境

IBM Kubernetes Service 1.22 (Classic Infrastructure)
　　・master node 1台
　　・worker node 2台


----
#### 事前調査


##### 1. IBM Cloud マニュアルに記載の Change log を確認

　　・[Kubernetes version 1.24 change log](https://cloud.ibm.com/docs/containers?topic=containers-changelog_124)
　　・[Kubernetes version 1.23 change log](https://cloud.ibm.com/docs/containers?topic=containers-changelog_123)


#####  2. Kubernetes の情報を確認

　　・[Is Your Cluster Ready for v1.24?](https://kubernetes.io/blog/2022/03/31/ready-for-dockershim-removal/)

> Way back in December of 2020, Kubernetes announced the deprecation of Dockershim. In Kubernetes, dockershim is a software shim that allows you to use the entire Docker engine as your container runtime within Kubernetes. In the upcoming v1.24 release, we are removing Dockershim - the delay between deprecation and removal in line with the project’s policy of supporting features for at least one year after deprecation. 


##### 3. Deprecation API の確認

使用している定義で変更されたAPIの有無、設定変更の要否を確認します。

　　・[The official list of API removals planned for Kubernetes 1.25 is](https://kubernetes.io/blog/2021/07/14/upcoming-changes-in-kubernetes-1-22/)
　　　　The beta CronJob API (batch/v1beta1)
　　　　The beta EndpointSlice API (networking.k8s.io/v1beta1)
　　　　The beta PodDisruptionBudget API (policy/v1beta1)
　　　　The beta PodSecurityPolicy API (policy/v1beta1

　　・[Kubernetes Removals and Deprecations In 1.24](https://kubernetes.io/blog/2022/04/07/upcoming-changes-in-kubernetes-1-24/)

　　・[Deprecated API Migration Guide](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-25)


----

#### 作業

##### 1) 事前情報取得

CLI でログインして対象のクラスターに接続し、kubectl コマンドで node, pod, deployment 等定義情報の事前取得を実施。
worker node で稼働しているPod は停止しました。



#####  2) マスターの更新① 1.22 -> 1.23

IBM Cloud にログインし、対象のクラスターの「概要」画面で アクション -> バージョンの更新を実行

![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/2c6e48de-4d50-51b6-b5fb-a3adcdfdc941.png)

アップデート後のバージョンを確認し
「更新」を押します。
![image2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/da3755a1-3467-e7ff-33c3-1f43842a7402.png)

更新が実行されました。
![image3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/6de8af29-02b7-8cae-2417-b84a43cbf71c.png)

20分程度でマスター・ノードの 1.22 -> 1.23 への更新が終わりました。


##### 3) マスターの更新② 1.23 -> 1.24

続いて 2) と同じ手順で アクション -> バージョンの更新を実施しアップデート後のバージョンを確認して「更新」を押します。

![image4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/0f42092d-b0a6-acc2-4bc2-825b1fb24785.png)

実行から 20 分程度で 1.23 -> 1.24 への更新が完了しました。

![image5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/4f46ee61-c8ca-9d3e-8d05-e4a7d00ecd67.png)


##### 4) ワーカー・ノードの更新 1.22 -> 1.24

![image6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/53cc7118-8a02-69de-6891-cda4933eb975.png)


対象クラスターの「ワーカー・ノード」の画面で対象のノードを選択し「更新」を押します。

確認画面：
![image7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/c2f314a2-b202-bc6d-1086-48d5938f1559.png)


2 台同時に更新実行を押しましたが、１台ずつ更新作業が進められていました。
およそ20分強で 2 台ともアップデートが完了しています。

![image8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/366a1e8c-9fd8-dfc9-0017-6942536488a4.png)



##### 5) 確認

・対象の Pod を起動して正常稼働するかどうかを確認。
・事後の定義を取得して作業前との変更を確認。



---

今回は Deprecation API に関連する箇所がなかったので定義変更は当環境では不要でした。



以上です。