OpenShift Operator バージョンアップのポイントとTips:アップグレードパスを把握する方法

OpenShift クラスタで運用しているOperatorのバージョンアップは、スムーズに行うために重要な作業ですが、どのバージョンを経由すればよいかがわからないことがよくあります。特に非接続環境では、必要なバージョンを事前にミラーリングすることが求められます。この記事では、Operatorのバージョンアップパスを調べる方法について、具体的なTipsを紹介します。

目次

1. OpenShiftバージョンに対応するOperatorのサポートバージョンを確認する

OpenShiftのバージョンに対応するOperatorのサポートバージョンは、OpenShiftのライフサイクルマネージャーで確認できます。ライフサイクルマネージャーでは、各OperatorがどのOpenShiftバージョンでサポートされているか、または利用可能なバージョン情報を簡単に確認できます。

ライフサイクルマネージャーでの確認手順

  1. ライフサイクルマネージャーのページにアクセス
  2. Operatorを検索
    • ページ内で、対象の Operator 名を検索します。
  3. Operator のサポート情報を確認
    • 各 Operator のサポート情報が一覧で表示されます。
      • Platform Aligned: OpenShift の特定のバージョンと連携してサポートされる Operator
      • Platform Agnostic: OpenShift のバージョンに依存せず、独立してサポートされる Operator
      • Rolling Stream: 継続的に更新される 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

ClusterLoggingQuayでは、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 のバージョンアップパスやサポート情報を確認し、適切なアップグレード計画を立ててください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次