Astra Trident をアップグレード
Astra Trident は四半期ごとにリリースサイクルを実施し、毎年 4 つのメジャーリリースをリリースしています。各新しいリリースは、以前のリリースに基づいてビルドされ、新機能とパフォーマンスの強化に加え、バグの修正や改善点が追加されています。ネットアップでは、Astra Tridentの新機能を活用するために、1年に1回以上アップグレードすることを推奨しています。
アップグレード前の考慮事項
最新リリースの Astra Trident にアップグレードする際は、次の点を考慮してください。
-
特定のKubernetesクラスタ内のすべてのネームスペースには、Astra Tridentインスタンスを1つだけインストールする必要があります。
-
Trident 20.01 以降では、のベータ版のみが提供されます "ボリューム Snapshot" がサポートされます。Kubernetes 管理者は、従来のアルファスナップショットを保持するために、アルファスナップショットオブジェクトを安全にバックアップするか、ベータ版に変換するように注意する必要があります。
-
CSI のボリュームスナップショットは、 Kubernetes 1.20 以降の GA 機能になりました。アップグレードする前に、を使用してアルファスナップショットCRDを削除する必要があります
tridentctl obliviate alpha-snapshot-crd
アルファスナップショット仕様のCRDを削除します。 -
ボリュームSnapshotのベータリリースでは、一連のCRDとSnapshotコントローラが変更されています。どちらもAstra Tridentをアップグレードする前にセットアップする必要があります。
-
詳細については、を参照してください "Kubernetesクラスタをアップグレードする前に知っておくべきこと"。
-
-
バージョン19.04以前からのアップグレードでは、いずれもAstra Tridentメタデータを自社から移行する必要があります
etcd
をCRDオブジェクトに追加します。を確認します "Astra Tridentリリースに固有のドキュメント" を参照して、アップグレードの仕組みを確認してください。 -
アップグレードするときは、この作業を行うことが重要です
parameter.fsType
インチStorageClasses
Astra Tridentが使用。削除して再作成することができますStorageClasses
実行前のボリュームの中断はなし。-
これは、強制の 要件 です "セキュリティコンテキスト" SAN ボリュームの場合。
-
sample inputディレクトリには、https://github.com/NetApp/trident/blob/master/trident-installer/sample-input/storage-class-samples/storage-class-basic.yaml.templなどの例が含まれています[
storage-class-basic.yaml.templ
)とリンク:https://github.com/NetApp/trident/blob/master/trident-installer/sample-input/storage-class-samples/storage-class-bronze-default.yaml[storage-class-bronze-default.yaml
^]をクリックします。詳細については、を参照してください "既知の問題"。
-
ステップ1:バージョンを選択します
Astra Tridentバージョンは日付ベースです YY.MM
命名規則。「YY」は年の最後の2桁、「MM」は月です。ドットリリースは、の後に続きます YY.MM.X
条約。ここで、「X」はパッチレベルです。アップグレード前のバージョンに基づいて、アップグレード後のバージョンを選択します。
-
インストールされているバージョンの4リリースウィンドウ内にある任意のターゲットリリースに直接アップグレードできます。たとえば、22.04(22.04.1などのDOTリリースを含む)から23.04に直接アップグレードできます。
-
以前のリリースを使用している場合は、具体的な手順について、該当するリリースのドキュメントを参照してアップグレードを実行してください。そのためには、最初に 4 つのリリースウィンドウに対応する最新リリースにアップグレードする必要があります。たとえば'18.07を実行していて'20.07リリースにアップグレードする場合は'次のように複数ステップのアップグレードプロセスを実行します
-
最初のアップグレードは 18.07 から 19.07 へ。
-
その後 '19.07 から 20.07 にアップグレードします
-
|
OpenShift Container PlatformでTridentオペレータを使用してアップグレードする場合は、Trident 21.01.1以降にアップグレードする必要があります。21.01.0 でリリースされた Trident オペレータには、 21.01.1 で修正された既知の問題が含まれています。詳細については、を参照してください "GitHub の問題の詳細"。 |
ステップ2:元のインストール方法を決定します
通常は、最初のインストールと同じ方法でアップグレードする必要がありますが、可能です "インストール方法を切り替えます"。
Astra Tridentの最初のインストールに使用したバージョンを確認するには、次の手順を実行します。
-
使用
kubectl get pods - trident
ポッドを検査するために。-
オペレータポッドがない場合は、を使用してAstra Tridentがインストールされています
tridentctl
。 -
オペレータポッドがある場合、Astra Tridentは手動またはHelmを使用してインストールされています。
-
-
オペレータポッドがある場合は、を使用します
kubectl describe tproc trident
をクリックし、Helmを使用してAstra Tridentがインストールされたかどうかを確認します。-
Helmラベルがある場合は、Helmを使用してAstra Tridentがインストールされています。
-
Helmラベルがない場合は、Astra TridentをTridentオペレータを使用して手動でインストールしています。
-
ステップ3:アップグレード方法を選択します
Astra Tridentは2つの方法でアップグレードできます。
オペレータを使用してアップグレードするタイミング
可能です "Tridentオペレータを使用してアップグレードします" 次の場合:
-
オペレータまたはを使用してAstra Tridentを最初にインストールした
tridentctl
。 -
CSI Tridentをアンインストールしても、インストールのメタデータは保持されます。
-
CSIベースのAstra Tridentがインストールされている。の19.07以降のすべてのリリースはCSIベースです。Tridentネームスペース内のポッドを調べてバージョンを確認できます。
-
23.01より前のバージョンでは、次の名前が使用されていました。
trident-csi-*
-
23.01以降でポッドの命名には次のものが使用されます。
-
trident-controller-<generated id>
コントローラポッドの場合 -
trident-node-<operating system>-<generated id>
ノードポッドの場合 -
trident-operator-<generated id>
オペレータポッド用
-
-
|
を使用している場合は、Tridentのアップグレードにオペレータを使用しないでください etcd - Tridentリリース(19.04以前)。
|
を使用してアップグレードするタイミング tridentctl
可能です 「tridenctl」を使用してAstra Tridentを最初にインストールした場合。
tridentctl
は従来のAstra Tridentのインストール方法であり、複雑なカスタマイズを必要とするお客様に最適なオプションを提供します。詳細については、を参照してください "インストール方法を選択します"。
演算子に変更があります
Astra Tridentの21.01リリースでは、運用者のアーキテクチャが次のように変更されました。
-
演算子は * cluster を対象とした * になりました。Trident 演算子の以前のインスタンス(バージョン 20.04 ~ 20.10 )は、 * 名前空間スコープ * でした。クラスタを対象としたオペレータが有利な理由は次のとおりです。
-
リソースのアカウンタビリティ:オペレータは、 Astra Trident インストールに関連付けられたリソースをクラスタレベルで管理するようになりました。Astra Tridentのインストールの一環として、オペレータはを使用して複数のリソースを作成し、管理します
ownerReferences
。メンテナンスownerReferences
クラスタを対象としたリソースでは、OpenShiftなどの特定のKubernetesディストリビュータでエラーが発生する可能性があります。これは、クラスタを対象としたオペレータによって緩和されます。Trident リソースの自動修復とパッチ適用には、この要件が不可欠です。 -
アンインストール中のクリーンアップ: Astra Trident を完全に削除するには、関連するリソースをすべて削除する必要があります。ネームスペースを対象としたオペレータが、クラスタを対象としたリソース( clusterRole 、 ClusterRoleBinding 、 PodSecurityPolicy など)の削除で問題が発生し、クリーンアップが完了しない場合があります。クラスタを対象としたオペレータがこの問題を排除し、必要に応じて、 Astra Trident を完全にアンインストールし、 Aresh をインストールできます。
-
-
TridentProvisioner
がに置き換えられましたTridentOrchestrator
Astra Tridentのインストールと管理に使用したカスタムリソース。また、に新しいフィールドが導入されますTridentOrchestrator
仕様Tridentのネームスペースは、を使用してからインストールまたはアップグレードするように指定できますspec.namespace
フィールド。例を見てみましょう "こちらをご覧ください"。