オペレータにアップグレードしてください
既存の Astra Trident インストールは、オペレータが簡単にアップグレードできます。
オペレータを使用してアップグレードするには、次の条件を満たしている必要があります。
-
CSI ベースの Astra Trident がインストールされている必要があります。CSI Trident を実行しているかどうかを確認するには、 Trident ネームスペースのポッドを調べます。それに続く場合
trident-csi-*
CSI Tridentを実行している名前パターン。 -
CRD ベースの Trident をインストールしている必要があります。19.07 以降のすべてのリリースを表します。CSI ベースのインストールを使用している場合は、 CRD ベースのインストールを使用している可能性があります。
-
CSI Trident をアンインストールしても、インストールからのメタデータが保持されている場合は、オペレータを使用してアップグレードできます。
-
特定の Kubernetes クラスタ内のすべてのネームスペースに存在する Trident のは、 1 つの Astra だけです。
-
を実行する Kubernetes クラスタを使用する必要があります "サポートされるKubernetesバージョン"。
-
アルファスナップショットのCRDが存在する場合は、で削除する必要があります
tridentctl obliviate alpha-snapshot-crd
。これにより、アルファスナップショット仕様の CRD が削除されます。削除または移行が必要な既存のスナップショットについては、を参照してください "この blog"。
OpenShift Container Platform で演算子を使用して Trident をアップグレードする場合は、 Trident 21.01.1 以降にアップグレードする必要があります。21.01.0 でリリースされた Trident オペレータには、 21.01.1 で修正された既知の問題が含まれています。詳細については、を参照してください "GitHub の問題の詳細"。 |
クラスタを対象としたオペレータ環境をアップグレードします
次の手順に従って、* Trident 21.01以降*からアップグレードします。
-
現在の Astra Trident インスタンスのインストールに使用した Trident オペレータを削除たとえば、 21.01 からアップグレードする場合は、次のコマンドを実行します。
kubectl delete -f 22.01/trident-installer/deploy/BUNDLE.YAML -n trident
-
必要に応じて、を編集できます
TridentOrchestrator
Tridentのインストール時に作成したオブジェクトで、インストールパラメータを変更します。これには、カスタムTridentイメージの変更、コンテナイメージをプルするためのプライベートイメージレジストリ、デバッグログの有効化、イメージプルシークレットの指定などの変更が含まれます。 -
環境に適したバンドルYAMLファイルとからAstra Tridentバージョンを使用して、Astra Tridentをインストールします
https://github.com/NetApp/trident/tree/stable/vXX.XX/deploy/BUNDLE.YAML
ここで、vXX.XX
は、バージョン番号です(例v22.10
)およびBUNDLE.YAML
はバンドルYAMLファイル名です。-
Kubernetes 1.24以前を実行しているクラスタの場合は、を使用します "Bundle_pre_1_25.yaml"。
-
Kubernetes 1.25以上を実行するクラスタの場合は、を使用します "bundle_post_1_25.yaml"。
たとえば、Kubernetes 1.25用にAstra Trident 22.10をインストールする場合は、次のコマンドを実行します。
kubectl create -f 22.10.0/trident-installer/deploy/bundle_post_1_25.yaml -n trident
この手順の一環として、Tridentオペレータが既存のAstra Tridentインストールを特定し、オペレータと同じバージョンにアップグレードします。
-
名前空間を対象としたオペレータインストールをアップグレードします
名前空間を対象とした演算子(バージョン 20.07 ~ 20.10 )を使用してインストールされた Astra Trident のインスタンスからアップグレードするには、次の手順に従います。
-
既存の Trident インストールのステータスを確認そのためには、の*ステータス*を確認してください
TridentProvisioner
。ステータスがになっている必要がありますInstalled
。kubectl describe tprov trident -n trident | grep Message: -A 3 Message: Trident installed Status: Installed Version: v20.10.1
ステータスがになっている場合 `Updating`をクリックし、続行する前に解決してください。可能なステータス値のリストについては、を参照してください "こちらをご覧ください"。 -
を作成します
TridentOrchestrator
Tridentインストーラに付属のマニフェストを使用したCRD。# Download the release required [22.10.0] mkdir 22.10.0 cd 22.10.0 wget https://github.com/NetApp/trident/releases/download/v22.10.0/trident-installer-22.10.0.tar.gz tar -xf trident-installer-22.10.0.tar.gz cd trident-installer kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
-
マニフェストを使用して、名前空間を対象とした演算子を削除します。この手順を完了するには、名前空間を対象とした演算子をから配備するために使用するバンドルYAMLファイルが必要です
https://github.com/NetApp/trident/tree/stable/vXX.XX/deploy/BUNDLE.YAML
ここで、vXX.XX
は、バージョン番号です(例v22.10
)およびBUNDLE.YAML
はバンドルYAMLファイル名です。Tridentのインストールパラメータに必要な変更を加えます(の値の変更など) tridentImage
、autosupportImage
、プライベートイメージリポジトリ、および提供imagePullSecrets
)名前空間を対象とした演算子を削除した後、クラスタを対象とした演算子をインストールする前。更新可能なパラメータの一覧については、を参照してください "設定オプション"。#Ensure you are in the right directory pwd /root/20.10.1/trident-installer #Delete the namespace-scoped operator kubectl delete -f deploy/<BUNDLE.YAML> serviceaccount "trident-operator" deleted clusterrole.rbac.authorization.k8s.io "trident-operator" deleted clusterrolebinding.rbac.authorization.k8s.io "trident-operator" deleted deployment.apps "trident-operator" deleted podsecuritypolicy.policy "tridentoperatorpods" deleted #Confirm the Trident operator was removed kubectl get all -n trident NAME READY STATUS RESTARTS AGE pod/trident-csi-68d979fb85-dsrmn 6/6 Running 12 99d pod/trident-csi-8jfhf 2/2 Running 6 105d pod/trident-csi-jtnjz 2/2 Running 6 105d pod/trident-csi-lcxvh 2/2 Running 8 105d NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/trident-csi ClusterIP 10.108.174.125 <none> 34571/TCP,9220/TCP 105d NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/trident-csi 3 3 3 3 3 kubernetes.io/arch=amd64,kubernetes.io/os=linux 105d NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/trident-csi 1/1 1 1 105d NAME DESIRED CURRENT READY AGE replicaset.apps/trident-csi-68d979fb85 1 1 1 105d
この段階では、を実行します
trident-operator-xxxxxxxxxx-xxxxx
ポッドが削除されました。 -
(オプション)インストールパラメータを変更する必要がある場合は、を更新します
TridentProvisioner
仕様これらの変更には、コンテナイメージをからプルするためのプライベートイメージレジストリの変更、デバッグログの有効化、イメージプルシークレットの指定などがあります。kubectl patch tprov <trident-provisioner-name> -n <trident-namespace> --type=merge -p '{"spec":{"debug":true}}'
-
クラスタを対象とした演算子をインストールします。
クラスタを対象としたオペレータをインストールすると、の移行が開始されます TridentProvisioner
オブジェクトの移動先TridentOrchestrator
オブジェクトを削除しますTridentProvisioner
オブジェクトとtridentprovisioner
CRD、およびAstra Tridentを、使用しているクラスタ対象オペレータのバージョンにアップグレードします。次の例では、Tridentを22.10.0にアップグレードしています。クラスタを対象としたオペレータを使用してAstra Tridentをアップグレードすると、が移行されます tridentProvisioner
をに追加しますtridentOrchestrator
同じ名前のオブジェクト。これは、オペレータによって自動的に処理されます。アップグレードの際には、 Astra Trident が以前と同じネームスペースにインストールされる予定です。#Ensure you are in the correct directory pwd /root/22.10.0/trident-installer #Install the cluster-scoped operator in the **same namespace** kubectl create -f deploy/<BUNDLE.YAML> serviceaccount/trident-operator created clusterrole.rbac.authorization.k8s.io/trident-operator created clusterrolebinding.rbac.authorization.k8s.io/trident-operator created deployment.apps/trident-operator created podsecuritypolicy.policy/tridentoperatorpods created #All tridentProvisioners will be removed, including the CRD itself kubectl get tprov -n trident Error from server (NotFound): Unable to list "trident.netapp.io/v1, Resource=tridentprovisioners": the server could not find the requested resource (get tridentprovisioners.trident.netapp.io) #tridentProvisioners are replaced by tridentOrchestrator kubectl get torc NAME AGE trident 13s #Examine Trident pods in the namespace kubectl get pods -n trident NAME READY STATUS RESTARTS AGE trident-csi-79df798bdc-m79dc 6/6 Running 0 1m41s trident-csi-xrst8 2/2 Running 0 1m41s trident-operator-5574dbbc68-nthjv 1/1 Running 0 1m52s #Confirm Trident has been updated to the desired version kubectl describe torc trident | grep Message -A 3 Message: Trident installed Namespace: trident Status: Installed Version: v22.10.0
Helm ベースのオペレータインストレーションをアップグレードします
Helm ベースのオペレータインストレーションをアップグレードするには、次の手順を実行します。
-
最新の Astra Trident リリースをダウンロード
-
を使用します
helm upgrade
コマンドを実行します次の例を参照してください。helm upgrade <name> trident-operator-22.10.0.tgz
ここで、
trident-operator-22.10.0.tgz
アップグレード後のバージョンが反映されます。 -
を実行します
helm list
グラフとアプリのバージョンが両方ともアップグレードされていることを確認します。
アップグレード中に構成データを渡すには、を使用します --set 。
|
たとえば、のデフォルト値を変更するには、のように指定します `tridentDebug`を使用して、次のコマンドを実行します。
helm upgrade <name> trident-operator-22.10.0-custom.tgz --set tridentDebug=true
を実行した場合 `tridentctl logs`デバッグメッセージが表示されます。
初期インストール時にデフォルト以外のオプションを設定する場合は、オプションが upgrade コマンドに含まれていることを確認してください。含まれていない場合は、値がデフォルトにリセットされます。 |
オペレータ以外のインストールからアップグレードします
CSI Trident インスタンスが上記の前提条件を満たしている場合は、 Trident オペレータの最新リリースにアップグレードできます。
-
最新の Astra Trident リリースをダウンロード
# Download the release required [22.10.0] mkdir 22.10.0 cd 22.10.0 wget https://github.com/NetApp/trident/releases/download/v22.10.0/trident-installer-22.10.0.tar.gz tar -xf trident-installer-22.10.0.tar.gz cd trident-installer
-
を作成します
tridentorchestrator
マニフェストからのCRD。kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
-
オペレータを配備します。
#Install the cluster-scoped operator in the **same namespace** kubectl create -f deploy/<BUNDLE.YAML> serviceaccount/trident-operator created clusterrole.rbac.authorization.k8s.io/trident-operator created clusterrolebinding.rbac.authorization.k8s.io/trident-operator created deployment.apps/trident-operator created podsecuritypolicy.policy/tridentoperatorpods created #Examine the pods in the Trident namespace NAME READY STATUS RESTARTS AGE trident-csi-79df798bdc-m79dc 6/6 Running 0 150d trident-csi-xrst8 2/2 Running 0 150d trident-operator-5574dbbc68-nthjv 1/1 Running 0 1m30s
-
を作成します
TridentOrchestrator
Astra Tridentのインストール用にCR。#Create a tridentOrchestrator to initate a Trident install cat deploy/crds/tridentorchestrator_cr.yaml apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident kubectl create -f deploy/crds/tridentorchestrator_cr.yaml #Examine the pods in the Trident namespace NAME READY STATUS RESTARTS AGE trident-csi-79df798bdc-m79dc 6/6 Running 0 1m trident-csi-xrst8 2/2 Running 0 1m trident-operator-5574dbbc68-nthjv 1/1 Running 0 5m41s #Confirm Trident was upgraded to the desired version kubectl describe torc trident | grep Message -A 3 Message: Trident installed Namespace: trident Status: Installed Version: v22.10.0
既存のバックエンドと PVC は自動的に使用可能