管理対象ノードからKubernetesバージョン1.35 (以降)へのアップグレード
OKE OL7イメージ、OL7プラットフォーム・イメージまたはOL7イメージに基づくカスタム・イメージを現在使用している管理対象ノードをアップグレードし、Kubernetes Engine (OKE)を使用してKubernetesバージョン1.35 (以降)およびOL8を実行する方法について説明します。
この項は、管理対象ノードにのみ適用されます。自己管理ノードをアップグレードする方法の詳細は、既存の自己管理ノードを置き換えることで新しいKubernetesバージョンへの自己管理ノードのアップグレードを参照してください。
Kubernetesバージョン1.35以降、Kubernetesにはコンテナ・リソース管理用のcgroup v2が必要です。
制御グループ(cgroups)は、プロセスまたはプロセスのグループのリソース割り当てを管理および制御するためのメカニズムを提供する Linuxカーネル機能です。コントロール・グループ・バージョン2 (cgroups v2)グループは、すべてのリソース・コントローラがマウントされる単一の制御グループ階層を提供します。この階層では、様々なリソース・コントローラ間でリソースの使用を調整できます。
Oracle Linux 7 (OL7)ではcgroup v1がサポートされますが、cgroup v2はサポートされません。Oracle Linux 8 (OL8)以降のバージョンでは、cgroups v1とcgroups v2の両方がサポートされていますが、cgroups v2がデフォルトでOL8で常に有効になっているわけではありません。
要約すると、Kubernetesバージョン1.35では、cgroup v2を有効にしたOL8 (またはそれ以降)が必要です。
ビルド番号が1367以上のOKE OL8イメージでは、Cgroups v2がデフォルトで有効になっています。ただし、ビルド番号が1367 (およびOL8プラットフォーム・イメージ)より小さいOKE OL8イメージでは、cgroups v1がデフォルトで有効になっています。
Kubernetesバージョン1.35 (以降)を実行しているクラスタ上のワーカー・ノードの場合、Kubernetes Engineは次のイメージをサポートします:
- ビルド番号が1367以上のOKE OL8イメージに基づくOKE OL8イメージおよびカスタム・イメージ。
- ビルド番号が1367より小さいOKE OL8イメージに基づくOKE OL8イメージおよびカスタム・イメージ(cgroups v2を有効にした場合のみ) (「カスタム・イメージを使用したOL8ワーカー・ノードでのCgroups v2の有効化」を参照)。
- OL8プラットフォーム・イメージに基づくカスタム・イメージ。ただし、cgroups v2を有効にした場合のみです(「カスタム・イメージを使用したOL8ワーカー・ノードでのCgroups v2の有効化」を参照)。
次のイメージは、Kubernetesバージョン1.35ではサポートされていないことに注意してください:
- OKE OL7イメージはサポートされていません。
- プラットフォーム・イメージ(OL7プラットフォーム・イメージとOL8プラットフォーム・イメージの両方)はサポートされていません。
- OKE OL7イメージに基づくカスタム・イメージはサポートされていません。
- OL7プラットフォーム・イメージに基づくカスタム・イメージはサポートされていません。
現在OL8イメージを使用している管理対象ノードを、Kubernetesバージョン1.35 (以降)にアップグレードする場合は、次の点に注意してください:
- ビルド番号が1367未満のOKE OL8イメージ(またはOKE OL8イメージに基づくカスタム・イメージ)を現在使用している管理対象ノードをアップグレードするには、インプレース・アップグレードを実行し、ビルド番号が1367以上のOKE OL8イメージを指定します。
- インプレース・アップグレードを実行し、ビルド番号が1367以上のOKE OL8イメージを指定することで、現在OL8プラットフォーム・イメージを使用している管理対象ノードをアップグレードできます。
- ノードをホストしているコンピュート・インスタンスのLinuxカーネルでcgroup v2がすでに有効になっているかどうかに関係なく、現在OL8イメージを使用している管理対象ノードのインプレース・アップグレードを実行できます。
- インプレース・アップグレードを実行する手順は、新しいKubernetesバージョンへの管理対象ノードのアップグレードを参照してください。
OKE OL7イメージを現在使用している管理対象ノード、OL7プラットフォーム・イメージまたはOL7イメージに基づくカスタム・イメージをアップグレードしてKubernetesバージョン1.35 (以降)を実行するには、アウトオブプレース・アップグレードを実行して、既存のノード・プールを新しいノード・プールに置き換えます:
-
コンソールまたはCLIを使用して、OL7を使用する既存のノード・プールを次のように識別します。
-
コンソールの使用:
- 「クラスタ」リスト・ページで、表示するノード・プールを含むクラスタの名前を選択します。リスト・ページまたはクラスタの検索に関するヘルプが必要な場合は、クラスタのリストを参照してください。
- 「ノード・プール」タブを選択します。
- 「イメージ名」列を使用して、
Oracle-Linux-7.9.xイメージを使用するノード・プールを識別します。
-
CLIの使用:次のようなコマンドを入力して、OL7を使用する既存のノード・プールを識別します。
oci ce node-pool list --cluster-id <cluster-ocid> --compartment-id <compartment-ocid> --query 'data[*].{name:"name", image:"node-source"."image-id"}'
-
-
コンソールまたはCLIを使用して、次のようにOL8イメージを使用する置換ノード・プールを作成します。
-
コンソールの使用:
- 「ノード・プール」タブで、「ノード・プールの追加」を選択し、新しいノード・プールの詳細を入力します。
Oracle Linux 8.xイメージに基づいて「OKEワーカー・ノード・イメージ」を選択します。- OL7ノード・プールと同じシェイプ、サイズおよび配置で新しいノード・プールを構成します。
- 「作成」を選択します。
-
CLIの使用:次のようなコマンドを入力して、OL8イメージを使用する置換ノード・プールを作成します。
oci ce node-pool create --cluster-id <cluster-ocid> --compartment-id <compartment-ocid> --name "nodepool-ol8-workers" --node-shape "VM.Standard.E4.Flex" --kubernetes-version "v1.35.0" --node-image-id <ol8-image-ocid> --size 3 --placement-configs '[{"availabilityDomain":"AD-1","subnetId":"<subnet-ocid>"}]'
-
-
OL7ノードをコード化します。
-
次のように入力して、OL7ノードの名前を取得します。
kubectl get nodes -l node.kubernetes.io/os=ol7 -
次のように入力して、各ノードをコード化します。
kubectl cordon <node-name>
-
-
OL7ノードをドレインして、ワークロードを正常に移行します。
- 次のように入力して、各OL7ノードを排出します。
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data --force - 次のように入力して、ワークロードが新しいノードで再スケジュールされていることを確認します。
kubectl get pods -A -o wide | grep <node-name>
- 次のように入力して、各OL7ノードを排出します。
-
コンソールまたはCLIを使用して、次のようにOL7ノード・プールを削除します。
-
コンソールの使用:
- 「ノード・プール」タブで、OL7ノード・プールの横にある「アクション」メニュー(3つのドット)から「ノード・プールの削除」を選択します。
- 「削除」をクリックします。
- ノード・プールを削除することを確認し、「削除」を選択します。
-
CLIの使用: OL7ノード・プールを削除します。
oci ce node-pool delete --node-pool-id <ol7-nodepool-ocid>
-
-
クラスタをアップグレードします(たとえば、Kubernetesバージョン1.35)。
oci ce cluster update --cluster-id <cluster-ocid> --kubernetes-version "v1.35.0"
詳細は、「既存のノード・プールを新しいノード・プールに置き換えることで管理対象ノードKubernetesアップグレードの実行」を参照してください。