Astra Control Center をアップグレードします
Astra Control Centerをアップグレードするには、インストールイメージをダウンロードし、以下の手順を実行します。この手順を使用して、インターネット接続環境またはエアギャップ環境の Astra コントロールセンターをアップグレードできます。
以下の手順では、2番目に新しいリリースから今回の最新リリースへのAstra Control Centerのアップグレードプロセスについて説明します。現在のリリースより2つ以上遅れているバージョンから直接アップグレードすることはできません。インストールされているAstra Control Centerのバージョンが最新リリースの背後に多数のバージョンがある場合は、インストールされているAstra Control Centerのバージョンが最新リリースの背後にあるまで、より新しいバージョンへのチェーンアップグレードが必要になることがあります。リリースされたバージョンの完全なリストについては、 "リリースノート"。
アップグレードする前に、環境が "Astra Control Center環境の最小要件"。環境に次の要素が必要です。
-
有効 "Astra Controlプロビジョニングツール" Astra Tridentを使用
-
実行しているAstra Tridentのバージョンを確認します。
kubectl get tridentversion -n trident
Astra Trident 23.01以前を実行している場合は、以下を使用 "手順" Astra Control Provisionerにアップグレードする前に、Astra Tridentの最新バージョンにアップグレードすること。Astra Tridentがバージョン24.02の4リリース期間内にある場合は、Astra Control Provisioner 24.02への直接アップグレードを実行できます。たとえば、Astra Trident 23.04からAstra Control Provisioner 24.02に直接アップグレードできます。 -
Astra Control Provisionerが "有効"。Astra Control Provisionerは、23.10より前のリリースのAstra Control Centerでは機能しません。最新の機能にアクセスするには、アップグレードするAstra Control Centerと同じバージョンのAstra Control Provisionerをアップグレードしてください。
-
-
サポートされているKubernetesディストリビューション
実行しているKubernetesのバージョンを確認します。
kubectl get nodes -o wide
-
十分なクラスタリソース
使用可能なクラスタリソースを確認します。
kubectl describe node <node name>
-
デフォルトのストレージクラス
デフォルトのストレージクラスを確認します。
kubectl get storageclass
-
正常で利用可能なAPIサービス
すべての API サービスが正常な状態であり、使用可能であることを確認します。
kubectl get apiservices
-
(ローカルレジストリのみ)Astra Control Centerイメージのプッシュとアップロードに使用できるローカルレジストリ
-
(OpenShiftのみ)正常で利用可能なクラスタオペレータ
すべてのクラスタオペレータが正常な状態であり、使用可能であることを確認します。
kubectl get clusteroperators
また、次の点も考慮する必要があります。
スケジュール、バックアップ、 Snapshot が実行されていないときは、メンテナンス時間内にアップグレードを実行します。 |
-
* 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>
-
-
* Istioサービスメッシュの導入*
Astra Control Centerのインストール時にIstioサービスメッシュをインストールした場合、このAstra Control CenterのアップグレードにはIstioサービスメッシュが含まれます。サービスメッシュをまだ持っていない場合は、 "初期導入" Astra Control Centerの略。
Astra Control Center のアップグレードプロセスでは、次の手順を実行できます。
アップグレードを開始する前に、Astra Control Center UIからログアウトします。 |
Astra Control Centerオペレータ(たとえば、 kubectl delete -f astra_control_center_operator_deploy.yaml ) Astra Control Centerのアップグレードまたは操作中はいつでもポッドを削除しないようにします。
|
Astra Control Centerをダウンロードして展開します
次のいずれかの場所からAstra Control Centerのイメージをダウンロードします。
-
* Astra Controlサービスのイメージレジストリ*:Astra Control Centerのイメージでローカルレジストリを使用しない場合や、NetApp Support Siteからバンドルをダウンロードするよりもこの方法を使用する場合は、このオプションを使用します。
-
* NetApp Support Site *:このオプションは、Astra Control Centerのイメージでローカルレジストリを使用する場合に使用します。
-
Astra Control Serviceにログインします。
-
ダッシュボードで、*[Deploy a self-managed instance of Astra Control]*を選択します。
-
手順に従ってAstra Controlイメージのレジストリにログインし、Astra Control Centerのインストールイメージを取得してイメージを展開します。
-
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 Centerバンドルをローカルのレジストリにプッシュする場合は、NetApp Astra kubectlコマンドラインプラグインを使用する必要があります。
NetApp Astra kubectlプラグインを削除して、再度インストールします
イメージをローカルのDockerリポジトリにプッシュするには、最新バージョンのNetApp Astra kubectlコマンドラインプラグインを使用する必要があります。
-
プラグインがインストールされているかどうかを確認します。
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
-
イメージをレジストリに追加する
-
Astra Control Centerバンドルをローカルのレジストリにプッシュする場合は、コンテナエンジンに応じた手順を実行します。
Docker です-
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=24.02.0-69 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=24.02.0-69 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/24.02.0-69/image:version
-
-
ディレクトリを変更します。
cd manifests
更新された Astra Control Center オペレータをインストールします
-
(ローカルレジストリのみ)ローカルレジストリを使用している場合は、次の手順を実行します。
-
Astra Control Centerオペレータによる導入YAMLを開きます。
vim astra_control_center_operator_deploy.yaml
注釈付きサンプル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
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:24.02.68 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]
注釈付きサンプルYAMLは以下の手順に従います。 -
Astraのバージョン番号を変更します (
astraVersion
の内部spec
)から23.10.0
終了:24.02.0
:現在のリリースより2つ以上遅れているバージョンから直接アップグレードすることはできません。リリースされたバージョンの完全なリストについては、 "リリースノート"。 spec: accountName: "Example" astraVersion: "[Version number]"
-
イメージレジストリを変更します。
-
(ローカルレジストリのみ)ローカルレジストリを使用している場合は、イメージのレジストリパスがイメージをプッシュしたレジストリパスと一致していることを確認します。 前の手順。更新
imageRegistry
の内部spec
前回のインストール後にローカルレジストリが変更された場合。 -
(Astra Controlイメージレジストリ)Astra Controlイメージレジストリを使用 (
cr.astra.netapp.io
)を使用して、更新されたAstra Controlバンドルをダウンロードしました。imageRegistry: name: "[cr.astra.netapp.io or 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 24.02.0-69 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 *ページを参照してください。
-
すべての管理対象クラスタとアプリケーションが引き続き存在し、保護されていることを確認します。