Astra Control Center をアップグレードします
Astra Control Centerをアップグレードするには、NetApp Support Site からインストールバンドルをダウンロードし、以下の手順を実行します。この手順を使用して、インターネット接続環境またはエアギャップ環境の Astra コントロールセンターをアップグレードできます。
以下の手順では、2番目に新しいリリースから今回の最新リリースへのAstra Control Centerのアップグレードプロセスについて説明します。現在のリリースより2つ以上遅れているバージョンから直接アップグレードすることはできません。インストールされているAstra Control Centerのバージョンが最新リリースの背後に多数のバージョンがある場合は、インストールされているAstra Control Centerのバージョンが最新リリースの背後にあるまで、より新しいバージョンへのチェーンアップグレードが必要になることがあります。リリースされたバージョンの完全なリストについては、 "リリースノート"。
アップグレードする前に、環境が "Astra Control Center環境の最小要件"。環境に次の要素が必要です。
-
* A "サポートされます" Astra Tridentバージョン*
ステップのために展開
実行しているTridentのバージョンを確認します。
kubectl get tridentversion -n trident
必要に応じて以下を使用してAstra Tridentをアップグレード "手順"。
23.10リリースは、Astra TridentをサポートするAstra Control Centerの最後のリリースです。次の作業を行うことを強くお勧めします。 "Astra Control Provisionerを有効にする" Astra Tridentで提供される機能以外にも、高度な管理機能やストレージプロビジョニング機能を利用できます。この拡張機能を使用するには、Astra Control Center 23.10にアップグレードし、Astra Control Provisionerを有効にする必要があります。Astra Control Provisionerは、以前のリリースのAstra Control Centerでは機能しません。 |
-
サポートされているKubernetesディストリビューション
ステップのために展開
実行しているKubernetesのバージョンを確認します。
kubectl get nodes -o wide
-
十分なクラスタリソース
ステップのために展開
使用可能なクラスタリソースを確認します。
kubectl describe node <node name>
-
* Astra Control Centerのイメージのプッシュとアップロードに使用できるレジストリ*
-
デフォルトのストレージクラス
ステップのために展開
デフォルトのストレージクラスを確認します。
kubectl get storageclass
-
正常で利用可能なAPIサービス
ステップのために展開
すべての API サービスが正常な状態であり、使用可能であることを確認します。
kubectl get apiservices
-
(OpenShiftのみ)正常で利用可能なクラスタオペレータ
ステップのために展開
すべてのクラスタオペレータが正常な状態であり、使用可能であることを確認します。
kubectl get clusteroperators
-
* NetApp Astra Controlイメージレジストリにアクセス*:
Astra Control Provisionerなど、Astra Controlのインストールイメージや機能強化された機能をNetAppイメージレジストリから取得することができます。ステップのために展開
-
レジストリへのログインに必要なAstra ControlアカウントIDを記録します。
アカウントIDはAstra Control Service Web UIで確認できます。ページ右上の図アイコンを選択し、* APIアクセス*を選択して、アカウントIDを書き留めます。
-
同じページから* APIトークンの生成*を選択し、APIトークン文字列をクリップボードにコピーしてエディターに保存します。
-
Astra Controlレジストリにログインします。
docker login cr.astra.netapp.io -u <account-id> -p <api-token>
-
Astra Control Center のアップグレードプロセスでは、次の手順を実行できます。
アップグレードを開始する前に、Astra Control Center UIからログアウトします。 |
Astra Control Centerオペレータ(たとえば、 kubectl delete -f astra_control_center_operator_deploy.yaml ) Astra Control Centerのアップグレードまたは操作中はいつでもポッドを削除しないようにします。
|
スケジュール、バックアップ、 Snapshot が実行されていないときは、メンテナンス時間内にアップグレードを実行します。 |
Astra Control Centerをダウンロードして展開します
NetApp Support SiteからAstra Control Centerバンドルをダウンロードするか、Dockerを使用してAstra Controlサービスのイメージレジストリからバンドルを取得できます。
-
Astra Control Centerを含むバンドルをダウンロードします (
astra-control-center-[version].tar.gz
)をクリックします "Astra Control Centerのダウンロードページ"。 -
(推奨ですがオプション)Astra Control Centerの証明書と署名のバンドルをダウンロードします (
astra-control-center-certs-[version].tar.gz
)をクリックして、バンドルのシグネチャを確認します。展開して詳細を表示
tar -vxzf astra-control-center-certs-[version].tar.gz
openssl dgst -sha256 -verify certs/AstraControlCenter-public.pub -signature certs/astra-control-center-[version].tar.gz.sig astra-control-center-[version].tar.gz
出力にはと表示されます
Verified OK
検証が成功したあとに、 -
Astra Control Centerバンドルからイメージを抽出します。
tar -vxzf astra-control-center-[version].tar.gz
-
Astra Control Serviceにログインします。
-
ダッシュボードで、*[Deploy a self-managed instance of Astra Control]*を選択します。
-
手順に従ってAstra Controlイメージのレジストリにログインし、Astra Control Centerのインストールイメージを取得してイメージを展開します。
NetApp Astra kubectlプラグインを削除して、再度インストールします
NetApp Astra kubectlコマンドラインプラグインを使用して、ローカルのDockerリポジトリにイメージをプッシュできます。
-
プラグインがインストールされているかどうかを確認します。
kubectl astra
-
次のいずれかを実行します。
-
プラグインがインストールされている場合は、コマンドによってkubectlプラグインのヘルプが返され、既存のバージョンのkubectl-Astraを削除できます。
delete /usr/local/bin/kubectl-astra
。 -
コマンドからエラーが返された場合は、プラグインがインストールされていません。次の手順に進んでインストールしてください。
-
-
プラグインをインストールします。
-
使用可能なNetApp Astra kubectlプラグインのバイナリを表示し、オペレーティングシステムとCPUアーキテクチャに必要なファイルの名前をメモします。
kubectlプラグインライブラリはtarバンドルの一部であり、フォルダに解凍されます kubectl-astra
。
ls kubectl-astra/
-
正しいバイナリを現在のパスに移動し、名前をに変更します
kubectl-astra
:cp kubectl-astra/<binary-name> /usr/local/bin/kubectl-astra
-
イメージをローカルレジストリに追加します
-
コンテナエンジンに応じた手順を実行します。
-
tarballのルートディレクトリに移動します。次のように表示されます。
acc.manifest.bundle.yaml
ファイルと次のディレクトリ:acc/
kubectl-astra/
acc.manifest.bundle.yaml
-
Astra Control Centerのイメージディレクトリにあるパッケージイメージをローカルレジストリにプッシュします。を実行する前に、次の置換を行ってください
push-images
コマンドを実行します-
<BUNDLE_FILE> をAstra Controlバンドルファイルの名前に置き換えます (
acc.manifest.bundle.yaml
)。 -
<MY_FULL_REGISTRY_PATH> をDockerリポジトリのURLに置き換えます。次に例を示します。 "https://<docker-registry>"。
-
<MY_REGISTRY_USER> をユーザ名に置き換えます。
-
<MY_REGISTRY_TOKEN> をレジストリの認証済みトークンに置き換えます。
kubectl astra packages push-images -m <BUNDLE_FILE> -r <MY_FULL_REGISTRY_PATH> -u <MY_REGISTRY_USER> -p <MY_REGISTRY_TOKEN>
-
-
tarballのルートディレクトリに移動します。次のファイルとディレクトリが表示されます。
acc/
kubectl-astra/
acc.manifest.bundle.yaml
-
レジストリにログインします。
podman login <YOUR_REGISTRY>
-
使用するPodmanのバージョンに合わせてカスタマイズされた次のいずれかのスクリプトを準備して実行します。<MY_FULL_REGISTRY_PATH> を'サブディレクトリを含むリポジトリのURLに置き換えます
Podman 4
export REGISTRY=<MY_FULL_REGISTRY_PATH> export PACKAGENAME=acc export PACKAGEVERSION=23.10.0-68 export DIRECTORYNAME=acc for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image: //') astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::') podman tag ${astraImageNoPath} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} done
Podman 3
export REGISTRY=<MY_FULL_REGISTRY_PATH> export PACKAGENAME=acc export PACKAGEVERSION=23.10.0-68 export DIRECTORYNAME=acc for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image: //') astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::') podman tag ${astraImageNoPath} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} done
レジストリ設定に応じて、スクリプトが作成するイメージパスは次のようになります。 https://downloads.example.io/docker-astra-control-prod/netapp/astra/acc/23.10.0-68/image:version
更新された Astra Control Center オペレータをインストールします
-
ディレクトリを変更します。
cd manifests
-
Astra Control Centerオペレータ配置YAMLを編集します (
astra_control_center_operator_deploy.yaml
)を参照して、ローカルレジストリとシークレットを参照してください。vim astra_control_center_operator_deploy.yaml
-
認証が必要なレジストリを使用する場合は、のデフォルト行を置換または編集します
imagePullSecrets: []
次の条件を満たす場合:imagePullSecrets: [{name: astra-registry-cred}]
-
変更
ASTRA_IMAGE_REGISTRY
をクリックしますkube-rbac-proxy
でイメージをプッシュしたレジストリパスへのイメージ 前の手順。 -
変更
ASTRA_IMAGE_REGISTRY
をクリックしますacc-operator
でイメージをプッシュしたレジストリパスへのイメージ 前の手順。 -
に次の値を追加します
env
セクション。- name: ACCOP_HELM_UPGRADETIMEOUT value: 300m
Astra control_center_operator_deploy.yamlの例:
apiVersion: apps/v1 kind: Deployment metadata: labels: control-plane: controller-manager name: acc-operator-controller-manager namespace: netapp-acc-operator spec: replicas: 1 selector: matchLabels: control-plane: controller-manager strategy: type: Recreate template: metadata: labels: control-plane: controller-manager spec: containers: - args: - --secure-listen-address=0.0.0.0:8443 - --upstream=http://127.0.0.1:8080/ - --logtostderr=true - --v=10 image: ASTRA_IMAGE_REGISTRY/kube-rbac-proxy:v4.8.0 name: kube-rbac-proxy ports: - containerPort: 8443 name: https - args: - --health-probe-bind-address=:8081 - --metrics-bind-address=127.0.0.1:8080 - --leader-elect env: - name: ACCOP_LOG_LEVEL value: "2" - name: ACCOP_HELM_UPGRADETIMEOUT value: 300m image: ASTRA_IMAGE_REGISTRY/acc-operator:23.10.72 imagePullPolicy: IfNotPresent livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 name: manager readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: limits: cpu: 300m memory: 750Mi requests: cpu: 100m memory: 75Mi securityContext: allowPrivilegeEscalation: false imagePullSecrets: [] securityContext: runAsUser: 65532 terminationGracePeriodSeconds: 10
-
-
更新された Astra Control Center オペレータをインストールします。
kubectl apply -f astra_control_center_operator_deploy.yaml
回答例:
namespace/netapp-acc-operator unchanged customresourcedefinition.apiextensions.k8s.io/astracontrolcenters.astra.netapp.io configured role.rbac.authorization.k8s.io/acc-operator-leader-election-role unchanged clusterrole.rbac.authorization.k8s.io/acc-operator-manager-role configured clusterrole.rbac.authorization.k8s.io/acc-operator-metrics-reader unchanged clusterrole.rbac.authorization.k8s.io/acc-operator-proxy-role unchanged rolebinding.rbac.authorization.k8s.io/acc-operator-leader-election-rolebinding unchanged clusterrolebinding.rbac.authorization.k8s.io/acc-operator-manager-rolebinding configured clusterrolebinding.rbac.authorization.k8s.io/acc-operator-proxy-rolebinding unchanged configmap/acc-operator-manager-config unchanged service/acc-operator-controller-manager-metrics-service unchanged deployment.apps/acc-operator-controller-manager configured
-
ポッドが実行中であることを確認します
kubectl get pods -n netapp-acc-operator
Astra Control Center をアップグレードします
-
Astra Control Centerカスタムリソース(CR)を編集します。
kubectl edit AstraControlCenter -n [netapp-acc or custom namespace]
-
Astraのバージョン番号を変更します (
astraVersion
の内部spec
)から23.07.0
終了:23.10.0
:現在のリリースより2つ以上遅れているバージョンから直接アップグレードすることはできません。リリースされたバージョンの完全なリストについては、 "リリースノート"。 spec: accountName: "Example" astraVersion: "[Version number]"
-
イメージレジストリパスが、イメージをでプッシュしたレジストリパスと一致することを確認します 前の手順。更新
imageRegistry
の内部spec
前回のインストール以降にレジストリが変更されている場合。imageRegistry: name: "[your_registry_path]"
-
に次の項目を追加します
crds
の内部の設定spec
:crds: shouldUpgrade: true
-
内に次の行を追加します
additionalValues
の内部spec
Astra Control Center CRで、次の手順を実行します。additionalValues: nautilus: startupProbe: periodSeconds: 30 failureThreshold: 600 keycloak-operator: livenessProbe: initialDelaySeconds: 180 readinessProbe: initialDelaySeconds: 180
-
ファイルエディタを保存して終了します。変更が適用され、アップグレードが開始されます。
-
(オプション)ポッドが終了し、再び使用可能になったことを確認します。
watch kubectl get pods -n [netapp-acc or custom namespace]
-
アップグレードが完了して準備ができたことを示すため、Astra Controlのステータス状態が表示されるまで待ちます (
True
):kubectl get AstraControlCenter -n [netapp-acc or custom namespace]
対応:
NAME UUID VERSION ADDRESS READY astra 9aa5fdae-4214-4cb7-9976-5d8b4c0ce27f 23.10.0-68 10.111.111.111 True
処理中のアップグレードステータスを監視するには、次のコマンドを実行します。 kubectl get AstraControlCenter -o yaml -n [netapp-acc or custom namespace]
Astra Control Centerのオペレータログを調べるには、次のコマンドを実行します。
kubectl logs deploy/acc-operator-controller-manager -n netapp-acc-operator -c manager -f
システムステータスを確認します
-
Astra Control Center にログインします。
-
バージョンがアップグレードされたことを確認します。UIの* Support *ページを参照してください。
-
すべての管理対象クラスタとアプリケーションが引き続き存在し、保護されていることを確認します。