管理対象ノードの以前のKubernetesバージョンへのロールバック
Kubernetes Engine (OKE)を使用して、既存のノード・プール内の管理対象ノードで実行されているKubernetesバージョンをロールバックする方法をご覧ください。
このセクションは、管理対象ノードにのみ適用されます。拡張クラスタと基本クラスタの両方で、管理対象ノードをロールバックできます。
この手順を使用して、コントロール・プレーン・ノードまたは仮想ノードで実行されているKubernetesバージョンをロールバックすることはできません。
ノード・プール内の管理対象ノードで実行されているKubernetesのバージョンをロールバックするには、既存のノード・プールに以前の使用可能なKubernetesバージョンを指定し、既存の管理対象ノードを置換します。
指定するKubernetesバージョンは、コントロール・プレーン・ノードで実行されているバージョンと互換性がある管理対象ノード・プールで使用可能である必要があります。管理対象ノード・プールで使用可能なKubernetesバージョンは、テナンシによって異なる場合があります。使用可能なバージョンを表示するには、コンソールでノード・プールを編集するときの「バージョン」リストを表示するか、oci ce node-pool-options getコマンドを使用するか、GetNodePoolOptions操作を使用します。
管理対象ノード・プールに構成されたKubernetesバージョンを変更しても、既存の管理対象ノードで実行されているKubernetesバージョンは変更されません。ロールバックを完了するには、既存の管理対象ノードを置き換えます。
ノード・サイクリングを使用する場合は、管理対象ノード・プール全体をサイクルします。個々の管理対象ノードをサイクリングしても、ノードで実行されているKubernetesのバージョンは変更されません。
Kubernetesバージョンの選択および互換性の詳細は、KubernetesバージョンおよびKubernetes Engine (OKE)を参照してください。
コンソールの使用
拡張クラスタ内の管理対象ノードをロールバックするには
拡張クラスタでは、既存のノード・プールに対して以前の使用可能なKubernetesバージョンを指定し、ノード・プール内のすべてのノードをサイクルすることで、管理対象ノードをロールバックできます。ノードを循環させるには、ブート・ボリュームを交換するか、ノードを終了して交換します。
- 「クラスタ」リスト・ページで、管理対象ノードで実行されているKubernetesバージョンをロールバックするクラスタの名前を選択します。リスト・ページまたはクラスタの検索に関するヘルプが必要な場合は、クラスタのリストを参照してください。
-
「ノード・プール」タブを選択し、管理対象ノードで実行されているKubernetesバージョンをロールバックするノード・プールの名前を選択します。
-
ノード・プールの詳細ページで、「アクション」メニューから「編集」を選択します。
-
「ノード・プールの編集」ダイアログの「バージョン」フィールドで、管理対象ノードに必要な以前のKubernetesバージョンを選択します。
指定するKubernetesバージョンは、コントロール・プレーン・ノードで実行されているバージョンと互換性がある必要があります。
Kubernetesバージョンのリストには、早期アクセス・テストおよび検証の目的でのみ提供されるプレビュー・バージョンが含まれています。これらのプレビュー・バージョンには、パッチ・バージョン番号として.0があります(たとえば、1.34.0)。プレビュー・バージョンは本番ワークロード向けではなく、既知の問題を含む場合があります。本番ワークロードにプレビュー・バージョンを使用することはお薦めしません。
-
変更を保存するには、「更新」を選択します。
これで、ノード・プール内のすべてのノードをサイクルして、指定したKubernetesバージョンを適用します。
-
「アクション」メニューから、「サイクル・ノード」を選択します。
推奨:アプリケーションに応じてポッド中断の予算を活用し、操作全体を通じて十分な数のレプリカ・ポッドが実行されていることを確認してください。詳細は、Kubernetesドキュメントのアプリケーションに対する中断予算の指定を参照してください。
-
「サイクル・ノード」ダイアログで、「サイクル・オプション」リストから次のいずれかのオプションを選択します。
-
ブート・ボリュームの置換: 操作中に使用できないノードの最大数または割合を指定し、「サイクル・ノード」を選択します。
-
ノードの置換: 操作中に許可する追加ノードおよび使用不可ノードの最大数または割合を指定し、「サイクル・ノード」を選択します。
ノート
ロールバックを適用するために、個々の管理対象ノードを循環させないでください。個々の管理対象ノードをサイクリングしても、ノードで実行されているKubernetesのバージョンは変更されません。 -
-
「作業リクエスト」タブで関連付けられた作業リクエストのステータスを表示して、操作の進行状況をモニターします(作業リクエストの詳細の取得を参照)。
基本クラスタ内の管理対象ノードをロールバックするには
ノード・サイクリングは、基本クラスタでは使用できません。基本クラスタ内の管理対象ノードをロールバックするには、既存のノード・プールの以前のKubernetesバージョンを指定し、既存の各管理対象ノードを順番に手動で削除および置換します。
- 「クラスタ」リスト・ページで、管理対象ノードで実行されているKubernetesバージョンをロールバックするクラスタの名前を選択します。リスト・ページまたはクラスタの検索に関するヘルプが必要な場合は、クラスタのリストを参照してください。
-
「ノード・プール」タブを選択し、管理対象ノードで実行されているKubernetesバージョンをロールバックするノード・プールの名前を選択します。
-
ノード・プールの詳細ページで、「アクション」メニューから「編集」を選択します。
-
「ノード・プールの編集」ダイアログの「バージョン」フィールドで、管理対象ノードに必要な以前のKubernetesバージョンを選択します。
指定するKubernetesバージョンは、コントロール・プレーン・ノードで実行されているバージョンと互換性がある必要があります。
Kubernetesバージョンのリストには、早期アクセス・テストおよび検証の目的でのみ提供されるプレビュー・バージョンが含まれています。これらのプレビュー・バージョンには、パッチ・バージョン番号として.0があります(たとえば、1.34.0)。プレビュー・バージョンは本番ワークロード向けではなく、既知の問題を含む場合があります。本番ワークロードにプレビュー・バージョンを使用することはお薦めしません。
-
変更を保存するには、「更新」を選択します。
これで、指定したKubernetesバージョンを実行して新しい管理対象ノードが起動されるように、既存の管理対象ノードを削除する必要があります。
-
ノード・プールの最初の管理対象ノードの場合:
- ノード・プールの詳細ページで、「ノード」タブを選択し、削除するノードの横にある「アクション」メニューから「ノードの削除」を選択します。
- 管理対象ノードを終了する前に、いつ、どのように接続して排出するかを指定します。スケール・ダウンするノード・プールではなく、新しい管理対象ノードが起動されるように、「ノード・プール・サイズの縮小」を選択しないでください。
- 「削除」を選択して、管理対象ノードを削除します。
管理対象ノードが削除され、新しい管理対象ノードが起動され、指定したKubernetesバージョンが実行されます。
- 指定したKubernetesバージョンがノード・プール内のすべての管理対象ノードで実行されるまで、ノード・プール内の残りの各管理対象ノードに対して前述のステップを繰り返します。
CLIの使用
CLIの使用の詳細は、コマンド・ライン・インタフェース(CLI)を参照してください。CLIコマンドで使用できるフラグおよびオプションの完全なリストは、コマンドライン・リファレンスを参照してください。
管理対象ノード・プールで使用可能なKubernetesバージョンを取得するには
管理対象ノード・プールで使用可能なKubernetesバージョンを取得するには、oci ce node-pool-options get --node-pool-option-id allコマンドを使用します。
ブート・ボリュームを置き換えて拡張クラスタ内の管理対象ノードをロールバックするには
oci ce node-pool updateコマンドを使用して、ノード・プールの以前のKubernetesバージョンを指定し、すべてのノードをサイクルしてブート・ボリュームを置換します。
oci ce node-pool update --node-pool-id <node-pool-ocid> --node-pool-cycling-details "{\"isNodeCyclingEnabled\":true,\"cycleModes\":[\"BOOT_VOLUME_REPLACE\"],\"maximumUnavailable\":<value>}" --kubernetes-version <k8s-version>
関連付けられた作業リクエストのステータスを表示して、操作の進行状況をモニターします。
oci ce work-request list --compartment-id <compartment-ocid> --resource-id <node-pool-ocid>
oci ce work-request get --work-request-id <work-request-ocid>ノードの終了および置換によって拡張クラスタ内の管理対象ノードをロールバックするには
oci ce node-pool updateコマンドを使用して、ノード・プールの以前のKubernetesバージョンを指定し、すべてのノードをサイクルして終了および置換します。Kubernetesバージョンに対応するイメージのOCIDを指定します。
oci ce node-pool update --node-pool-id <node-pool-ocid> --node-pool-cycling-details "{\"isNodeCyclingEnabled\":true,\"cycleModes\":[\"INSTANCE_REPLACE\"],\"maximumUnavailable\":<value>,\"maximumSurge\":<value>}" --kubernetes-version <k8s-version> --node-source-details "{\"imageId\":\"<image-ocid>\",\"sourceType\":\"IMAGE\"}"
関連付けられた作業リクエストのステータスを表示して、操作の進行状況をモニターします。
oci ce work-request list --compartment-id <compartment-ocid> --resource-id <node-pool-ocid>
oci ce work-request get --work-request-id <work-request-ocid>ノードを手動で削除および置換して、基本クラスタ内の管理対象ノードをロールバックするには
まず、oci ce node-pool updateコマンドを使用して、ノード・プールの以前のKubernetesバージョンおよび対応するイメージのOCIDを指定します:
oci ce node-pool update --node-pool-id <node-pool-ocid> --kubernetes-version <k8s-version> --node-image-id <image-ocid>
次に、ノード・プール内の各管理対象ノードを順番に削除し、新しい管理対象ノードを起動して削除した管理対象ノードを置き換えるように指定します。
oci ce node-pool delete-node --node-pool-id <node-pool-ocid> --node-id <node-ocid> --is-decrement-size false
APIの使用
APIの使用およびリクエストの署名の詳細は、REST APIのドキュメントおよびセキュリティ資格証明を参照してください。SDKの詳細は、SDKおよびCLIを参照してください。
GetNodePoolOptions操作を使用して、管理対象ノード・プールで使用可能なKubernetesバージョンを取得します。
UpdateNodePool操作を使用して、既存のノード・プールの以前のKubernetesバージョンを指定します。拡張クラスタの場合は、同じ操作でノード・サイクリングの詳細を指定して、ブート・ボリュームの置換、またはノードの終了と置換を行うこともできます。