2.2. ROSA Classic クラスターのアップグレード
ROSA (クラシックアーキテクチャー) クラスターは、ROSA CLI (rosa
) または OpenShift Cluster Manager コンソールを使用してアップグレードする必要があります。
実際のクラスターのアップグレードは、アップグレードスケジュールの時刻から 1 時間以内に開始します。さらに、ワークロードの設定によって、アップグレードの所要時間が変わる場合があります。
AWS Security Token Services (STS) を使用する ROSA (クラシックアーキテクチャー) クラスターをアップグレードするときに、ROSA CLI は、選択したクラスターのアカウントと Operator ロールポリシーがアップグレードのターゲットバージョンと互換性があることを確認します。ポリシーに互換性がある場合、CLI はクラスターを自動的にアップグレードします。選択したアップグレードバージョンとの互換性がポリシーにない場合、CLI は IAM ポリシーを自動的にアップグレードしてからクラスターをアップグレードします。アップグレードをスケジュールするときには、必要に応じて、アップグレードに関連する変更をレビューしたことを確認するために、管理者としての承認を行います。
2.2.1. ROSA (クラシックアーキテクチャー) クラスターのアップグレードの仕組み
アップグレードは手動で開始するか (1 回限り)、自動的にスケジュールされます (定期的)。Red Hat の Site Reliability Engineers (SRE) が、アップグレードの進行状況を監視して、修正措置の実施または発生した問題の解決を行うようプロアクティブに通知します。
Cluster Version Operator (CVO) は、OpenShift Container Platform の更新プロセスを調整および促進する主要コンポーネントです。
Managed Upgrade Operator (MUO) は、ROSA (クラシックアーキテクチャー) クラスターのアップグレードのスケジュール設定、監視、および通知を処理します。MUO は、管理対象クラスターのアップグレードの前後に動作条件が満たされていることを確認し、自動インプレースクラスターアップグレードをオーケストレーションします。
2.2.1.1. クラスターのアップグレードのスケジュール時刻
クラスターのアップグレードをスケジュールするには、スケジュール時刻を設定します。これは、クラスターのアップグレードの準備を開始し、アップグレード前のヘルスチェックと追加コンピュート容量の作成を行う時刻です。実際のクラスターのアップグレードは、スケジュールされた時刻から 1 時間以内に開始します。クラスターのアップグレードが開始すると、メール通知が届きます。
Pre-Health Check (PHC) は、スケジュールされた更新が期待どおりに進行するように、追加の保護を提供します。PHC は次の 2 つの場合に実行されます。
- アップグレードが現在の時刻から 2 時間以上後にスケジュールされている場合、PHC が実行されます。障害が発生した場合、ユーザーに通知されます。この PHC は、アップグレードの 新規 フェーズ中に行われます。
- アップグレードが即時または 2 時間以内に行われる場合、PHC はアップグレードの開始直前に実行されます。この PHC は、アップグレードの アップグレード フェーズ中に行われます。そのため、PHC はアップグレードフェーズ中に少なくとも 1 回は必ず実行されます。ただし、アップグレードが現在の時刻から 2 時間以上後にスケジュールされている場合は、事前に追加で実行することもできます。
ROSA CLI (rosa
) で rosa describe upgrade --cluster=<cluster name|cluster_id>
コマンドを実行すると、クラスターのアップグレードのステータスを確認できます。
2.2.1.2. ROSA (クラシックアーキテクチャー) アップグレードの概要
ROSA (クラシックアーキテクチャー) クラスターの更新中に実行される大まかな手順は次のとおりです。
-
アップグレードを事前にスケジュールすると、
PreHealthCheck
がトリガーされ、アップグレードの開始前に対処できる障害がユーザーに通知されます。 クラスターのアップグレードが開始される前に、MUO によってクラスターのヘルスチェックが実行されます。修正措置を必要とする問題が MUO によって特定された場合は、通知が届きます。MUO が実行するクラスターのヘルスチェックの例を次に示します。
- ノードの更新をブロックまたは遅延させる可能性のある Pod Disruption Budgets (PDB) を特定します。
- クラスター Operator が利用可能で正常であることを確認します。
- クラスターの重要なアラートが発生していないことを確認します。
更新中にドレインされた Pod のスケジュールを可能にするために、クラスター内に一時的なコンピュートノードが作成されます。
注記一時的なコンピュートノードの作成は必ずしも行われるとは限りません。たとえば、
worker
マシンプールがない場合、一時的なコンピュートノードは作成されません。これは、クラスター管理者が既存のworker
マシンプールを削除し、異なる名前またはインスタンスタイプで別のworker
マシンプールを作成した場合に発生する可能性があります。クラスターのバージョンがターゲットバージョンに設定されます。
注記場合によっては、クラスターの更新が要求されてから完了するまでの間に、アップグレードパスが利用できなくなることがあります。このような場合、アップグレードは自動的にキャンセルされ、通知が送信されます。アップグレードを要求するには、別のターゲットバージョンを選択する必要があります。
- アップグレード中に、コントロールプレーンのコンポーネントが新しいバージョンに更新されます。
- 次に、個々のクラスター Operator が、クラスターの各領域の更新タスクを実行します。
最後に、MCO が、すべてのノードのシステム設定とオペレーティングシステムを更新します。このステップでは、ノード上で実行されているワークロードが正常にドレインされた後、各ノードが再起動されます。
- 各ノードの更新中に、PDB を遵守しながらワークロードがドレインされます。停止を許容しない PDB を持つワークロードがあると、基本的にノードのドレインがブロックされ、クラスターの更新にかかる時間が増加します。
- クラスター内の全ノードの更新中、クラスター更新は、ワークロードを安全にドレインできるように、ノードドレイン猶予期間 で指定された時間まで待機します。ノードドレイン猶予期間が経過すると、クラスターのアップグレードを続行できるように、ノードが強制的にドレインされます。ノードドレイン猶予期間は、アップグレードを開始する前にのみ設定できます。クラスターのアップグレードの開始後に変更することはできません。
- MCO は、クラスターノード更新時に、その経過時間に基づき、最も古いものから順に、マシン設定プールごとに 1 つずつノードを選択します。
2.2.2. ROSA CLI を使用したアップグレード
ROSA CLI (rosa
) を使用して、Red Hat OpenShift Service on AWS (ROSA) クラスターを 1 時間以内にすぐにアップグレードできます。将来の時刻にアップグレードすることもできます。
前提条件
- インストールホストに、最新の ROSA CLI をインストールして設定している。
-
Red Hat OpenShift Service on AWS クラスターが
Ready
状態である。
手順
クラスターの現行バージョンを確認するには、以下のコマンドを入力します。
$ rosa describe cluster --cluster=<cluster_name|cluster_id> 1
- 1
<cluster_name|cluster_id>
はクラスター名またはクラスターの ID に置き換えます。
アップグレードが利用可能であることを確認するには、以下のコマンドを入力します。
$ rosa list upgrade --cluster=<cluster_name|cluster_id>
このコマンドは、推奨されるバージョンを含め、クラスターをアップグレードすることのできるバージョンのリストを返します。この推奨は、条件付き更新のリスクに基づいています。既知の各リスクは、すべてのクラスターに当てはまる場合と、特定の条件に一致するクラスターにのみ当てはまる場合があります。OpenShift リリースノートを参照して、適切なアップグレード先のバージョンを評価、検証、決定してください。
1 時間以内にクラスターを指定のバージョンにすぐにアップグレードするには、次のコマンドを入力します。
$ rosa upgrade cluster --cluster=<cluster_name|cluster_id> --version <version-id>
注記AWS Security Token Service (STS) クラスターをアップグレードする場合、このコマンドによって、インタラクティブな IAM ロール/ポリシーのアップグレードモードプロセスが開始します。このプロセスでは、選択したクラスターのアカウントと Operator のロールポリシーがアップグレードのターゲットバージョンと互換性があることを確認します。選択したアップグレードバージョンとの互換性がポリシーにない場合、CLI は自動モードでポリシーを自動的にアップグレードします。
クラスターは、Scheduled Time に示されるとおり、直ちにアップグレードされるようにスケジュールされます。アップグレードはスケジュール時刻から 1 時間以内に開始します。
または、将来の UTC 時刻にクラスターをアップグレードするには、次のコマンドを入力します。
$ rosa upgrade cluster --cluster=<cluster_name|cluster_id> \ --version <version-id> \ --schedule-date yyyy-mm-dd \ --schedule-time HH:mm
クラスターのアップグレード中にドレインされるすべてのノードの猶予期間をカスタマイズするには、次のコマンドを入力します。
$ rosa upgrade cluster --cluster=<cluster_name|cluster_id> \ --version <version-id> \ --node-drain-grace-period 15 minutes
次のコマンドを入力すると、アップグレードのステータスが表示されます。このコマンドでは、ステータス (scheduled または started) とスケジュール時刻の両方が表示されます。
$ rosa list upgrade --cluster=<cluster_name|cluster_id>
出力例
VERSION NOTES 4.15.14 recommended - scheduled for 2024-06-02 15:00 UTC 4.15.13
クラスターのアップグレードのスケジュール、開始、完了を確認するメール通知が届きます。
トラブルシューティング
- スケジュールされたアップグレードがトリガーされない場合があります。詳細は Upgrade maintenance cancelled を参照してください。
2.2.3. ROSA CLI を使用した ROSA クラスターのアップグレードの削除
ROSA CLI (rosa
) または OpenShift Cluster Manager コンソールを使用して、スケジュール済みのアップグレードを削除できます。この手順では ROSA CLI を使用します。
手順
次のコマンドを使用して、クラスターの更新が開始していないことを確認します。
$ rosa list upgrades --cluster=<cluster_name|cluster_id>
出力例
VERSION NOTES 4.15.14 recommended - scheduled for 2024-06-02 15:00 UTC 4.15.13
次のコマンドを実行して、スケジュール済みの更新を削除します。
$ rosa delete upgrade --cluster=<cluster_name|cluster_id>
確認プロンプトで
Yes
と入力して削除を確定します。出力例
I: Successfully canceled scheduled upgrade on cluster 'my-cluster'
スケジュール済みのアップグレードがキャンセルされたことを確認するメール通知が届きます。
2.2.4. OpenShift Cluster Manager コンソールを使用したアップグレード
OpenShift Cluster Manager コンソールを使用して、ROSA クラスターのアップグレードを 1 回だけ手動で、または定期的なスケジュールでスケジュールできます。
手順
- OpenShift Cluster Manager にログインします。
- アップグレードするクラスターを選択します。
- Settings タブをクリックします。
Update strategy ペインで、必要な更新の種類を選択します。
- 個別の更新の場合は、アップグレードをすぐに (1 時間以内に開始) または将来の時刻に要求できます。
定期的な更新の場合は、利用可能な最新の xyZ (z-stream) バージョンへのアップグレードを自動的に開始する定期的な日時を選択します。
重要定期的な更新は z-stream 更新にのみ適用されます。マイナーバージョンまたは y-stream の更新は手動で行う必要があります。新しい y-stream 更新が利用可能になると、通知が届きます。
オプション: Node draining ペインで、リストから猶予期間の間隔を選択します。猶予期間により、ノードは Pod のエビクションを強制する前に正常にドレイン (解放) できます。デフォルトは 1 時間 です。
重要アップグレードプロセスを開始した後は、ノードドレインの猶予期間を変更できません。
- Update strategy ペインで Save をクリックし、更新ストラテジーを適用します。
Update status ペインで、Update available 情報を確認し、Update をクリックします。
注記Update ボタンは、アップグレードが利用可能な場合に限り有効になります。
- Update cluster ダイアログが開きます。推奨されるクラスターのアップグレードが Select version ペインに表示されます。クラスターのアップグレード先のバージョンを選択し、Next をクリックします。
オプション: AWS Security Token Service (STS) を使用する ROSA クラスターの場合、選択したターゲットバージョンに応じて、アカウントレベルおよびクラスター固有の Operator ロールを更新する必要がある場合があります。
-
ROSA CLI で、
rosa list account-roles
コマンドを実行して、アカウントロールをリスト表示し、アップグレード用に選択したターゲットマイナーバージョンとの互換性がロールにあることを確認します。ロールに互換性がない場合は、rosa upgrade account-roles
コマンドを実行して、アカウントロールを最新の OpenShift バージョンにアップグレードします。 -
ROSA CLI で、
rosa list operator-roles
コマンドを実行して、クラスターに関連付けられている Operator ロールをリスト表示し、アップグレード用に選択したターゲットマイナーバージョンとの互換性がロールにあることを確認します。互換性がない場合は、rosa upgrade operators-roles
コマンドを実行して、クラスターの Operator ロールを最新の OpenShift バージョンにアップグレードします。 - 承認が必要な更新バージョンを選択した場合は、指定のフィールドに Acknowledge と入力して管理者の承認を提供し、Next をクリックします。
-
ROSA CLI で、
Schedule update ダイアログで、クラスターのアップグレードをスケジュールします。
- 1 時間以内にアップグレードするには、Update now を選択し、Next をクリックします。
- 後でアップグレードするには、Schedule a different time を選択し、アップグレードの日時を設定します。Next をクリックして確認ダイアログに進みます。
- バージョンを確認し、概要をスケジュールしたら、Confirm update を選択します。
- Close をクリックして、Update cluster ダイアログを終了します。
クラスターは、ターゲットバージョンにアップグレードするようにスケジュールされます。この操作には、選択したアップグレードスケジュールや、Pod Disruption Budget などのワークロード設定に応じて、最大 1 時間かかる場合があります。
ステータスが Update status ペインに表示されます。
トラブルシューティング
- スケジュールされたアップグレードがトリガーされない場合があります。詳細は Upgrade maintenance cancelled を参照してください。
2.2.5. OpenShift Cluster Manager コンソールを使用してアップグレードを削除する
OpenShift Cluster Manager コンソールを使用して、スケジュール済みのアップグレードを削除できます。
手順
- OpenShift Cluster Manager にログインします。
- アップグレードがスケジュールされているクラスターを選択します。
- Settings タブをクリックします。
- Update status ペインで、Cancel this update をクリックします。
- Cancel update ダイアログで更新の詳細を確認し、Cancel this update をクリックします。
スケジュール済みのアップグレードがキャンセルされたことを確認するメール通知が届きます。