OpenShift クラスタで運用しているOperatorのバージョンアップは、スムーズに行うために重要な作業ですが、どのバージョンを経由すればよいかがわからないことがよくあります。特に非接続環境では、必要なバージョンを事前にミラーリングすることが求められます。この記事では、Operatorのバージョンアップパスを調べる方法について、具体的なTipsを紹介します。
1. OpenShiftバージョンに対応するOperatorのサポートバージョンを確認する
OpenShiftのバージョンに対応するOperatorのサポートバージョンは、OpenShiftのライフサイクルマネージャーで確認できます。ライフサイクルマネージャーでは、各OperatorがどのOpenShiftバージョンでサポートされているか、または利用可能なバージョン情報を簡単に確認できます。
ライフサイクルマネージャーでの確認手順
- ライフサイクルマネージャーのページにアクセス
- 以下のリンクから、Red Hat の OpenShift Operator ライフサイクルポリシーのページにアクセスします。
- https://access.redhat.com/ja/support/policy/updates/openshift_operators
- Operatorを検索
- ページ内で、対象の Operator 名を検索します。
- Operator のサポート情報を確認
- 各 Operator のサポート情報が一覧で表示されます。
- Platform Aligned: OpenShift の特定のバージョンと連携してサポートされる Operator
- Platform Agnostic: OpenShift のバージョンに依存せず、独立してサポートされる Operator
- Rolling Stream: 継続的に更新される Operator
- 対象のOperatorの最新バージョンとサポート終了日、メンテナンスサポート終了日などの詳細も確認することができます。
- 各 Operator のサポート情報が一覧で表示されます。
2. Operatorのバージョンアップパスを調べる
Operatorをアップグレードする際、どのバージョン間でのアップグレードがサポートされているかを知ることが大切です。これを調べるために、OpenShiftのoc
コマンドを使って、OperatorのPackageManifest
を確認する方法があります。skipRange
というフィールドに、どのバージョンからアップグレードが可能か、どのバージョンを経由する必要があるかが記載されています。
1.1. PackageManifest
を確認する
例えば、以下のコマンドで対象のOperatorのバージョン情報を確認できます。
$ oc get packagemanifest <operator-name> -o yaml | grep -E "currentCSV|skipRange"
このコマンドは、指定したOperatorのバージョンと、それに関連するskipRange
情報を表示します。この情報をもとに、アップグレードが可能なバージョンや経由すべきバージョンを確認できます。
1.2. Operatorごとのアップグレードポリシー
Operatorごとにバージョンアップの制約が異なるため、どのバージョンを経由する必要があるかも変わります。
ClusterLogging、Quay、ACSの例を見てみましょう。
例: ClusterLoggingおよびQuay
ClusterLogging
やQuay
では、skipRange
が広い範囲をカバーしており、例えばClusterLoggingでは「5.9.4から6.2.3への直接アップグレード」が可能であることが確認できます。
この場合、マイナーバージョン間でのアップグレードを一度に行うことができます。
- ClusterLogging の例
$ oc get packagemanifest cluster-logging -o yaml | grep -E "currentCSV|skipRange"
出力結果:
- currentCSV: cluster-logging.v6.1.7
currentCSVDesc:
olm.skipRange: '>=5.9.0-0 <6.1.7'
- currentCSV: cluster-logging.v6.2.3
currentCSVDesc:
olm.skipRange: '>=6.0.0-0 <6.2.3'
この例では、ClusterLogging v5.9.4からv6.2.3へのアップグレードは直接行うことができ、間にv6.1.7を経由する必要はありません。
- Quay の例
$ oc get packagemanifest quay-operator -o yaml | grep -E "currentCSV|skipRange"
出力結果:
- currentCSV: quay-operator.v3.11.12
currentCSVDesc:
olm.skipRange: '>=3.8.x <3.11.12'
- currentCSV: quay-operator.v3.12.11
currentCSVDesc:
olm.skipRange: '>=3.9.x <3.12.11'
- currentCSV: quay-operator.v3.13.7
currentCSVDesc:
olm.skipRange: '>=3.10.x <3.13.7'
- currentCSV: quay-operator.v3.14.3
currentCSVDesc:
olm.skipRange: '>=3.11.x <3.14.3'
ここでも、Quay v3.11.12からv3.14.3へのアップグレードが直接可能であり、マイナーバージョン間でのアップグレードを一度に行えます。
例: RHACS (ACS) Operator
一方、RHACS Operator (ACS)では、アップグレードには1バージョンずつ進める必要があることが多いです。例えば、バージョン3.74.0から3.75.0にアップグレードする場合、その間にあるすべてのバージョン(3.74.0 → 3.74.1 → 3.75.0)を順番に適用しなければならないことがあります。
- RHACS Operator の例
$ oc get packagemanifest rhacs-operator -o yaml | grep -E "currentCSV|skipRange"
出力結果:
- currentCSV: rhacs-operator.v3.74.9
currentCSVDesc:
olm.skipRange: '>= 3.73.0 < 3.74.9'
- currentCSV: rhacs-operator.v3.75.1
currentCSVDesc:
olm.skipRange: '>= 3.74.0 < 3.75.1'
- currentCSV: rhacs-operator.v3.76.2
currentCSVDesc:
olm.skipRange: '>= 3.75.0 < 3.76.2'
この場合、v3.74.0からv3.75.1にアップグレードするには、まずv3.74.9にアップグレードした後、v3.75.1に進む必要があります。つまり、段階的にアップグレードを行う必要があるため、1バージョンずつアップデートを進めなければなりません。
非接続環境での Operator バージョンのミラーリング
非接続環境では、必要な Operator のバージョンをミラーリングする必要があります。
この際、ライフサイクルマネージャーのページで確認したサポートされているバージョンをもとに、必要なバージョンを選定し、ミラーリングを行ってください。
参考リンク
これらのリソースを活用して、Operator のバージョンアップパスやサポート情報を確認し、適切なアップグレード計画を立ててください。
コメント