IBMCloud IKS WorkerNodeのUbuntu20->24へのアップグレード

## 目的
Ubuntu20のサポートが終了することから、IKSのWorkerNodeをubuntu20からubuntu24へアップグレードを実施し、操作と動きを確認する。

:::note alert
非推奨: Ubuntu20は非推奨であり、サポートは2025年4月1日に終了する。 サポートが終了する前に、ワーカーノードをUbuntu24に移行しましょう。 移行を開始する前に、Ubuntu24の制限 を理解していることを確認してください。 詳細については、[新しいUbuntuバージョンへの移行](https://cloud.ibm.com/docs/containers?topic=containers-ubuntu-migrate&locale=ja) を参照してください。
:::

Ubuntu20のまま利用しているとGUIコンソールにも警告が表示される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/dfb0344c-38bb-fa22-a141-6b06ba88aedf.png)


## アップデート前の状態
アップデート前の環境
```
% ibmcloud ks cluster ls
OK
名前                          ID                     状態     作成日         ワーカー   ロケーション   バージョン               リソース・グループ名   プロバイダー
acs-paas-oc-cluster3-jp-tok   co9j451t0t7uths6xxxx   normal   6 months ago   2          Tokyo          4.13.53_1600_openshift   acs-paas               vpc-gen2
acs-paascluster-jp-tok        co9j451t0t7uths6xxxx   normal   9 months ago   2          Tokyo          1.30.7_1545              acs-paas               vpc-gen2

% ibmcloud ks worker ls --cluster co9j451t0t7uths6xxxx
OK
ID                                                       プライマリー IP   フレーバー   状態     状況    ゾーン     バージョン     オペレーティング・システム
kube-co9j451t0t7uths6xxxx-acspaasclus-lowspec-00001191   10.244.128.41     cx2.2x4      normal   Ready   jp-tok-3   1.29.7_1555*   UBUNTU_20_64
kube-co9j451t0t7uths6xxxx-acspaasclus-lowspec-000012ec   10.244.64.53      cx2.2x4      normal   Ready   jp-tok-2   1.29.7_1555*   UBUNTU_20_64
```

## アップデートの実施
①ワーカー・プールのオペレーティング・システムを確認
```
% ibmcloud ks worker-pools -c co9j451t0t7uths6xxxx
OK
名前      ID                             フレーバー   OS             ワーカー
lowspec   co9j451t0t7uths6kb10-9476a1e   cx2.2x4      UBUNTU_20_64   2
```

②ワーカープールの新しいUbuntuバージョンを指定
これ以降追加されたワーカーノードはUbuntu24となる。しかし、既にあるワーカーノードはUbuntu20のままとなるため、③の手順が必要となる。
```
% ibmcloud ks worker-pool operating-system set --cluster co9j451t0t7uths6xxxx --worker-pool lowspec --operating-system UBUNTU_24_64
Setting operating system for worker pool 'lowspec' in cluster 'co9j451t0t7uths6kb10'...
OK
You can now update your workers if their OS has changed to UBUNTU_24_64 by running either 'ibmcloud ks worker update' or 'ibmcloud ks worker replace'.
```

③ibmcloud ks worker replace/update コマンドを実行して、ワーカープールの各ワーカーノードを更新
```
% ibmcloud ks worker replace --cluster co9j451t0t7uths6xxxx --worker kube-co9j451t0t7uths6kb10-acspaasclus-lowspec-00001191 --update
置換ワーカー・ノードは同じゾーン内に同じフレーバーで作成されますが、新しいパブリック IP アドレスまたはプライベート IP アドレスを取得します。 置換中、すべてのポッドが他のワーカー・ノードにスケジュール変更される場合があり、ポッドの外部に保管されていないデータは削除されます。 ダウン時間を回避するには、選択したワーカー・ノードの置換中に、ワークロードを処理するために十分なワーカー・ノード数を確保するようにしてください。
ワーカー・ノード kube-co9j451t0t7uths6xxxx-acspaasclus-lowspec-00001191 を置換しますか? [y/N]> y
ワーカー・ノード kube-co9j451t0t7uths6xxxx-acspaasclus-lowspec-00001191 の削除とクラスター co9j451t0t7uths6kb10 内の新規ワーカー・ノードの作成中...
OK
```

④WorkerPoolが新しいUbuntuバージョンを実行していることを確認
```
% ibmcloud ks worker-pools -c co9j451t0t7uths6xxxx
OK
名前      ID                             フレーバー   OS             ワーカー
lowspec   co9j451t0t7uths6xxxx-9476a1e   cx2.2x4      UBUNTU_24_64   2
```

WorkerNodeはバージョンも上がっている
```
% ibmcloud ks worker ls --cluster co9j451t0t7uths6xxxx
OK
ID                                                       プライマリー IP   フレーバー   状態     状況    ゾーン     バージョン      オペレーティング・システム
kube-co9j451t0t7uths6xxxx-acspaasclus-lowspec-000012ec   10.244.64.53      cx2.2x4      normal   Ready   jp-tok-2   1.29.7_1555*    UBUNTU_20_64
kube-co9j451t0t7uths6xxxx-acspaasclus-lowspec-000014f4   10.244.128.4      cx2.2x4      normal   Ready   jp-tok-3   1.30.7_1549   UBUNTU_24_64
```

## GUIからのupdateの実施
updateしたいWorkerNodeにチェックを入れ、updateを選択
![貼り付けた画像_2025_01_07_17_44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/d9033122-4d0f-7096-553b-59eb050c0435.png)

updateを選択
![貼り付けた画像_2025_01_07_17_45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/703043/6ae81e77-4c1d-cd58-95f7-99ede57bb090.png)

## 新規WorkerNodeの追加
WorkerPoolはUbuntu24になったため、新規でWorkerNodeを追加してみる
Zone毎に1台から2台に変更
```
% ibmcloud ks worker-pool resize --size-per-zone 2 --cluster co9j451t0t7uths6xxxx --worker-pool lowspec
クラスター co9j451t0t7uths6kb10 内のプール lowspec のサイズを 2 に設定中...
```

新規で追加されたWorkerもUbuntu24になっている
```
% ibmcloud ks worker ls --cluster co9j451t0t7uths6xxxx
OK
ID                                                       プライマリー IP   フレーバー   状態     状況    ゾーン     バージョン      オペレーティング・システム
kube-co9j451t0t7uths6xxxx-acspaasclus-lowspec-000012ec   10.244.64.53      cx2.2x4      normal   Ready   jp-tok-3   1.29.11_1571*   UBUNTU_20_64
kube-co9j451t0t7uths6xxxx-acspaasclus-lowspec-000014f4   10.244.128.4       cx2.2x4      normal   Ready   jp-tok-2   1.30.7_1549   UBUNTU_24_64
kube-co9j451t0t7uths6xxxx-acspaasclus-lowspec-000018de   10.244.128.10     cx2.2x4      normal   Ready   jp-tok-3   1.30.7_1549     UBUNTU_24_64
kube-co9j451t0t7uths6xxxx-acspaasclus-lowspec-00001970   10.244.64.10      cx2.2x4      normal   Ready   jp-tok-2   1.30.7_1549     UBUNTU_24_64
```