1.5. ROSA CLI を使用したクラスター全体のアップグレード
クラスター全体をアップグレードするには、Hosted Control Plane とマシンプール内のノードの両方をアップグレードする必要があります。ただし、これらのコンポーネントを同時にアップグレードすることはできません。順番にアップグレードする必要があります。これは任意の順序で実行できます。ただし、クラスター内のノード間の互換性を維持するために、マシンプール内のノードは Hosted Control Plane よりも新しいバージョンを使用できません。したがって、Hosted Control Plane とマシンプール内のノードの両方を同じ OpenShift バージョンにアップグレードする必要がある場合は、最初に Hosted Control Plane をアップグレードし、次にマシンプールをアップグレードする必要があります。
前提条件
- ROSA CLI の最新バージョンがインストール、設定されている。
- このアップグレードと同時に他のアップグレードは実行しておらず、実行する予定もありません。
1.5.1. Hosted Control Plane のアップグレード
クラスター全体をアップグレードする必要がある場合は、まず Hosted Control Plane をアップグレードします。
前提条件
- ROSA CLI の最新バージョンがインストール、設定されている。
- Hosted Control Plane のアップグレードと同時にマシンプールのアップグレードは実行しておらず、実行する予定もない。
手順
次のコマンドを実行して、クラスターの現在のバージョンを確認します。
$ rosa describe cluster --cluster=<cluster_name_or_id> 1
- 1
<cluster_name_or_id>
は、クラスター名またはクラスター ID に置き換えます。
次のコマンドを実行して、コントロールプレーンをアップグレードできるバージョンをリスト表示します。
$ rosa list upgrade --cluster=<cluster_name_or_id>
このコマンドは、推奨バージョンを含む、利用可能な更新のリストを返します。
出力例
VERSION NOTES 4.14.8 recommended 4.14.7 4.14.6
次のコマンドを実行して、クラスターの Hosted Control Plane をアップグレードします。
$ rosa upgrade cluster -c <cluster_name_or_id> --control-plane [--schedule-date=<yyyy-mm-dd> --schedule-time=<HH:mm>] --version <version_number>
指定したバージョンへの即時アップグレードをスケジュールするには、次のコマンドを実行します。
$ rosa upgrade cluster -c <cluster_name_or_id> --control-plane --version <version_number>
Hosted Control Plane は即時アップグレードされる予定です。
指定したバージョンへのアップグレードを将来の日付でスケジュールするには、次のコマンドを実行します。
$ rosa upgrade cluster -c <cluster_name_or_id> --control-plane --schedule-date=<yyyy-mm-dd> --schedule-time=<HH:mm> --version=<version_number>
Hosted Control Plane は、協定世界時 (UTC) で指定された時間にアップグレードされる予定です。
1.5.2. マシンプールのアップグレード
Hosted Control Plane のアップグレードが完了したら、1 つ以上のマシンプールをアップグレードできます。
ノードドレインタイムアウト、max-unavailable、max-surge などのマシンプール設定は、アップグレードのタイミングと成功に影響を及ぼす可能性があります。
手順
次のコマンドを実行して、クラスターの現在のバージョンを確認します。
$ rosa describe cluster --cluster=<cluster_name_or_id> 1
- 1
<cluster_name_or_id>
は、クラスター名またはクラスター ID に置き換えます。
出力例
OpenShift Version: 4.14.8
次のコマンドを実行して、マシンプールをアップグレードできるバージョンをリスト表示します。
$ rosa list upgrade --cluster <cluster-name> --machinepool <machinepool_name>
このコマンドは、推奨バージョンを含む、利用可能な更新のリストを返します。
出力例
VERSION NOTES 4.14.5 recommended 4.14.4 4.14.3
重要マシンプールをコントロールプレーンよりも高いバージョンにアップグレードしないでください。より高いバージョンに移行する場合は、まずコントロールプレーンをそのバージョンにアップグレードします。
次のコマンドを実行して、アップグレードするマシンプールのアップグレード動作を確認します。
$ rosa describe machinepool --cluster=<cluster_name_or_id> <machinepool_name>
出力例
Replicas: 5 Node drain grace period: 30 minutes Management upgrade: - Type: Replace - Max surge: 20% - Max unavailable: 20%
この例では、これらの設定により、マシンプールはアップグレード中に 1 つの余分なノード (
replicas
の 20% のmax-surge
) をプロビジョニングし、最大 1 つのノードを使用不可 (replicas
の 20% のmax-unavailable
) にすることができます。したがって、このマシンプールは、レプリカ数を超えて 1 つの新しいノードをプロビジョニングし、1 つのノードを使用不可にして置き換えることで、一度に 2 つのノードをアップグレードできます。Pod 中断予算を持つワークロードを保護するために必要な場合、ノードのアップグレードは最大 30 分 (node-drain-grace-period
は 30 分) 遅延されることがあります。次のコマンドを実行してマシンプールをアップグレードします。
$ rosa upgrade machinepool -c <cluster_name> <machinepool_name> [--schedule-date=<yyyy-mm-dd> --schedule-time=<HH:mm>] --version <version_number>
アップグレードするマシンプールごとにこのコマンドを実行すると、複数のマシンプールを同時にアップグレードできます。
マシンプールの即時アップグレードをスケジュールするには、次のコマンドを実行します。
$ rosa upgrade machinepool -c <cluster_name> <machinepool_name> --version <version_number>
マシンプールは即時アップグレードするようにスケジュールされており、指定されたマシンプール内のすべてのノードのローリング置換が開始します。
アップグレードを将来の時刻に開始するようにスケジュールするには、次のコマンドを実行します。
$ rosa upgrade machinepool -c <cluster_name> <machinepool_name> --schedule-date=<yyyy-mm-dd> --schedule-time=<HH:mm> --version <version_number>
マシンプールは、協定世界時 (UTC) で指定された日時にアップグレードを開始するようにスケジュールされています。これにより、指定された時刻から、指定されたマシンプール内のすべてのノードのローリング置換が開始します。