この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

Kubernetesのアップグレードとロールバック

Rancherの最新バージョンにアップグレードした後、ダウンストリームのKubernetesクラスターは、サポートされている最新のKubernetesバージョンを使用するようにアップグレードできます。

Rancherは、RKEクラスターをプロビジョニングおよび編集する際に、RKE(Rancher Kubernetes Engine)をライブラリとして呼び出します。RKEクラスターのアップグレード戦略を構成する方法についての詳細は、 RKEドキュメントを参照してください。

テストされたKubernetesバージョン

新しいRancherのバージョンがリリースされる前に、互換性を確認するために、最新のマイナーバージョンのKubernetesでテストされます。各RancherバージョンでテストされたKubernetesバージョンの詳細については、 サポート保守条件を参照してください。

アップグレードの仕組み

RKE v1.1.0は、クラスターのアップグレード方法を変更しました。

この RKEドキュメント,のセクションでは、RKE Kubernetesクラスターを編集またはアップグレードすると何が起こるかを学びます。

クラスターのKubernetesバージョンをアップグレードする際は、次のことを推奨します。

  1. スナップショットを作成してください。

  2. Kubernetesアップグレードを開始してください。

  3. アップグレードが失敗した場合は、クラスタをアップグレード前のKubernetesバージョンに戻すこれは、*etcdとKubernetesバージョンを復元する*オプションを選択することで実現されます。これにより、etcdスナップショットを復元する前に、クラスターがアップグレード前のKubernetesバージョンに戻ります。

復元操作は、正常またはアクティブな状態ではないクラスタで機能します。

Kubernetesバージョンのアップグレード

前提条件:
  1. 左上隅で、*☰ > クラスター管理*をクリックします。

  2. クラスター*ページで、アップグレードしたいクラスターに移動し、⋮ > 設定を編集*をクリックします。

  3. *Kubernetesバージョン*のドロップダウンから、クラスターで使用したいKubernetesのバージョンを選択します。

  4. 保存]をクリックします。

*結果:*Kubernetesがクラスターのアップグレードを開始します。

ロールバック

クラスターは、以前のKubernetesバージョンが使用されていたバックアップに復元できます。詳細については、以下のセクションを参照してください:

アップグレード戦略の設定

RKE v1.1.0以降、アップグレードプロセスに対するより詳細な制御を提供するために、追加のアップグレードオプションが利用可能になりました。これらのオプションは、特定の 条件と要件が満たされている場合、クラスターのアップグレード中にアプリケーションの可用性を維持するために使用できます。

アップグレード戦略は、Rancher UIで設定するか、`cluster.yml`を編集することで構成できます。より高度なオプションは、`cluster.yml`を編集することで利用可能です。

Rancher UIでの最大利用不可ワーカーノードの設定

Rancher UIから、最大利用不可ワーカーノードの数を設定できます。クラスタのアップグレード中に、ワーカーノードがこのサイズのバッチでアップグレードされます。

デフォルトでは、使用できないワーカーの最大数は、すべてのワーカーノードの10パーセントとして定義されています。この数は、パーセンテージとして、または整数として設定できます。パーセンテージとして定義されている場合、バッチサイズは、1つ以上のノードを含む最も近いノードに切り捨てられます。

デフォルトのワーカーノードの数または割合を変更するには、

  1. 左上隅で、*☰ > クラスター管理*をクリックします。

  2. クラスター*ページで、アップグレードしたいクラスターに移動し、⋮ > 設定を編集*をクリックします。

  3. *アップグレード戦略*タブで、*ワーカーの同時実行数*を固定数または割合として入力します。この数値を取得するには、クラスター内のノードの数から最大の利用不可ノードを引くことができます。

  4. 保存]をクリックします。

*結果:*クラスターは新しいアップグレード戦略を使用するように更新されます。

Rancher UIからのアップグレード中にノードの排出を有効にする

デフォルトでは、RKEはアップグレードする前に各ノードを コーデンします。アップグレード中は 排出がデフォルトで無効になっています。クラスター構成で排出が有効になっている場合、RKEはアップグレードの前にノードをコーデンし、排出します。

クラスターのアップグレード中に各ノードの排出を有効にするには、

  1. 左上隅で、*☰ > クラスター管理*をクリックします。

  2. クラスター*ページで、ノードの排出を有効にしたいクラスターに移動し、⋮ > 設定を編集*をクリックします。

  3. *⋮ > 編集*をクリックします。

  4. *アップグレード戦略*タブで、*ノードを排出*フィールドに移動し、*はい*をクリックします。ノードの排出は、コントロールプレーンとワーカーノードで別々に構成されます。

  5. ポッドが削除される方法のオプションを構成します。各オプションの詳細については、このセクションを参照してください。

  6. オプションで、猶予期間を構成します。猶予期間は、各ポッドにクリーンアップのために与えられるタイムアウトで、ポッドが正常に終了するための猶予を与えます。ポッドは、未処理のリクエストを完了したり、トランザクションをロールバックしたり、外部ストレージに状態を保存したりする必要があるかもしれません。この値が負の場合、ポッドで指定されたデフォルト値が使用されます。

  7. オプションで、タイムアウトを構成します。これは、排出があきらめる前に待機する時間のことです。

  8. 保存]をクリックします。

*結果:*クラスターは新しいアップグレード戦略を使用するように更新されます。

  • Rancher UIがetcdとコントロールプレーンの状態を排出中として表示しない 既知の問題がありますが、実際には排出されています。

  • アップグレード中は、ユーザーが目に見えるYAMLの変更がない場合でも、ノードが排出されることがあります。これは、非動的な設定ファイルが更新されたり、新しい`system-agent-installer`イメージが導入されたりする場合に発生する可能性があります。そのような場合、Rancherは新しいアップグレードプランを生成し、新しいプランハッシュが生成されます。`Upgrade Strategy`が`Drain nodes`に設定されている場合、このプランの変更はノードの排出を引き起こす可能性があります。

アップグレード中のアプリケーションの可用性を維持する

このRKEドキュメントのセクション,では、クラスターのアップグレード時にアプリケーションのダウンタイムを防ぐための要件について学びます。

cluster.ymlでのアップグレード戦略の設定

より高度なアップグレード戦略の設定オプションは、`cluster.yml`を編集することで利用可能です。

詳細については、RKEドキュメントの アップグレード戦略の設定を参照してください。このセクションには、アップグレード戦略を設定するための例`cluster.yml`も含まれています。

トラブルシューティング

アップグレード後にノードが起動しない場合、`rke up`コマンドはエラーになります。

使用できないノードの数が設定されている最大数を超えると、アップグレードは続行されません。

アップグレードが停止した場合、アップグレードを続行する前に、使用できないノードを修正するか、クラスターから削除する必要があります。

失敗したノードは多くの異なる状態にある可能性があります:

  • 電源オフ

  • 使用不可

  • ユーザーがアップグレード中にノードをドレインするため、ノード上にkubeletが存在しません。

  • アップグレード自体が失敗しました。

アップグレード中に最大の使用できないノード数に達した場合、Rancherユーザークラスターは更新状態に留まり、他のコントロールプレーンノードのアップグレードを進めることができません。ノードのいずれかが利用可能になる場合に備えて、使用できないノードのセットを引き続き評価します。ノードを修正できない場合、アップグレードを続行するためにノードを削除する必要があります。