Upgrade Astra Control Center
Laden Sie zum Upgrade des Astra Control Center das Installationspaket von der NetApp Support Site herunter und führen Sie diese Anweisungen aus, um die Komponenten des Astra Control Center in Ihrer Umgebung zu aktualisieren. Mit diesem Verfahren können Sie das Astra Control Center in internetverbundenen oder luftgekapderten Umgebungen aktualisieren.
-
Stellen Sie sicher, dass alle Cluster Operator in einem ordnungsgemäßen Zustand und verfügbar sind.
OpenShift-Beispiel:
oc get clusteroperators
-
Stellen Sie sicher, dass alle API-Services in einem gesunden Zustand und verfügbar sind.
OpenShift-Beispiel:
oc get apiservices
-
Melden Sie sich von Ihrem Astra Control Center ab.
Der Astra Control Center Upgrade-Prozess führt Sie durch die folgenden grundlegenden Schritte:
Führen Sie den folgenden Befehl während der gesamten Dauer des Upgrades nicht aus, um zu vermeiden, dass alle Astra Control Center Pods gelöscht werden: kubectl delete -f astra_control_center_operator_deploy.yaml
|
Führen Sie Upgrades in einem Wartungsfenster durch, wenn Zeitpläne, Backups und Snapshots nicht ausgeführt werden. |
Podman-Befehle können anstelle von Docker-Befehlen verwendet werden, wenn Sie den Podman von Red hat anstelle von Docker Engine verwenden. |
Laden Sie das Astra Control Center Bundle herunter
-
Laden Sie das Astra Control Center-Upgrade-Bundle herunter (
astra-control-center-[version].tar.gz
) Vom "NetApp Support Website". -
(Optional) Überprüfen Sie mit dem folgenden Befehl die Signatur des Pakets:
openssl dgst -sha256 -verify astra-control-center[version].pub -signature <astra-control-center[version].sig astra-control-center[version].tar.gz
Packen Sie das Paket aus und ändern Sie das Verzeichnis
-
Extrahieren Sie die Bilder:
tar -vxzf astra-control-center-[version].tar.gz
-
Wechseln Sie in das Astra-Verzeichnis.
cd astra-control-center-[version]
Fügen Sie die Bilder Ihrer lokalen Registrierung hinzu
-
Fügen Sie die Dateien im Astra Control Center-Bildverzeichnis Ihrer lokalen Registrierung hinzu.
Siehe ein Beispielskript für das automatische Laden von Bildern unten. -
Melden Sie sich bei Ihrer Docker Registrierung an:
docker login [your_registry_path]
-
Laden Sie die Images in Docker.
-
Markieren Sie die Bilder.
-
Schieben Sie die Bilder in Ihre lokale Registrierung.
export REGISTRY=[your_registry_path] for astraImageFile in $(ls images/*.tar) # Load to local cache. And store the name of the loaded image trimming the 'Loaded images: ' do astraImage=$(docker load --input ${astraImageFile} | sed 's/Loaded image: //') astraImage=$(echo ${astraImage} | sed 's!localhost/!!') # Tag with local image repo. docker tag ${astraImage} ${REGISTRY}/${astraImage} # Push to the local repo. docker push ${REGISTRY}/${astraImage} done
-
Installieren Sie den aktualisierten Astra Control Center-Operator
-
Bearbeiten Sie die yaml-Implementierung des Astra Control Center-Bedieners (
astra_control_center_operator_deploy.yaml
) Zu Ihrem lokalen Register und Geheimnis zu verweisen.vim astra_control_center_operator_deploy.yaml
-
Wenn Sie eine Registrierung verwenden, für die eine Authentifizierung erforderlich ist, ersetzen Sie die Standardzeile von
imagePullSecrets: []
Mit folgenden Optionen:imagePullSecrets: - name: <name_of_secret_with_creds_to_local_registry>
-
Ändern
[your_registry_path]
Für daskube-rbac-proxy
Bild zum Registrierungspfad, in dem Sie die Bilder in ein geschoben haben Vorheriger Schritt. -
Ändern
[your_registry_path]
Für dasacc-operator-controller-manager
Bild zum Registrierungspfad, in dem Sie die Bilder in ein geschoben haben Vorheriger Schritt.
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 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: [your_registry_path]/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 command: - /manager env: - name: ACCOP_LOG_LEVEL value: "2" image: [your_registry_path]/acc-operator:[version x.y.z] imagePullPolicy: IfNotPresent imagePullSecrets: []
-
-
Installieren Sie den aktualisierten Astra Control Center-Operator:
kubectl apply -f astra_control_center_operator_deploy.yaml
Beispielantwort:
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
Upgrade Astra Control Center
-
Bearbeiten Sie die benutzerdefinierte Astra Control Center-Ressource (CR) und ändern Sie die Astra-Version (
astraVersion
Innerhalb vonSpec
) Nummer auf die neueste:kubectl edit acc -n [netapp-acc or custom namespace]
Eine Änderung der Astra-Version ist die einzige Voraussetzung für ein Upgrade des Astra Control Center. Ihr Registrierungspfad muss mit dem Registrierungspfad übereinstimmen, in dem Sie die Bilder in A verschoben haben Vorheriger Schritt. -
Überprüfen Sie, ob die Pods enden und wieder verfügbar sind:
watch kubectl get pods -n [netapp-acc or custom namespace]
-
Überprüfen Sie, ob alle Systemkomponenten erfolgreich aktualisiert wurden.
kubectl get pods -n [netapp-acc or custom namespace]
Jeder Pod sollte einen Status von haben
Running
UndAge
Das ist die letzte. Es kann mehrere Minuten dauern, bis die System-Pods implementiert sind.Beispielantwort:
NAME READY STATUS RESTARTS AGE acc-helm-repo-5f75c5f564-bzqmt 1/1 Running 0 11m activity-6b8f7cccb9-mlrn4 1/1 Running 0 9m2s api-token-authentication-6hznt 1/1 Running 0 8m50s api-token-authentication-qpfgb 1/1 Running 0 8m50s api-token-authentication-sqnb7 1/1 Running 0 8m50s asup-5578bbdd57-dxkbp 1/1 Running 0 9m3s authentication-56bff4f95d-mspmq 1/1 Running 0 7m31s bucketservice-6f7968b95d-9rrrl 1/1 Running 0 8m36s cert-manager-5f6cf4bc4b-82khn 1/1 Running 0 6m19s cert-manager-cainjector-76cf976458-sdrbc 1/1 Running 0 6m19s cert-manager-webhook-5b7896bfd8-2n45j 1/1 Running 0 6m19s cloud-extension-749d9f684c-8bdhq 1/1 Running 0 9m6s cloud-insights-service-7d58687d9-h5tzw 1/1 Running 2 8m56s composite-compute-968c79cb5-nv7l4 1/1 Running 0 9m11s composite-volume-7687569985-jg9gg 1/1 Running 0 8m33s credentials-5c9b75f4d6-nx9cz 1/1 Running 0 8m42s entitlement-6c96fd8b78-zt7f8 1/1 Running 0 8m28s features-5f7bfc9f68-gsjnl 1/1 Running 0 8m57s fluent-bit-ds-h88p7 1/1 Running 0 7m22s fluent-bit-ds-krhnj 1/1 Running 0 7m23s fluent-bit-ds-l5bjj 1/1 Running 0 7m22s fluent-bit-ds-lrclb 1/1 Running 0 7m23s fluent-bit-ds-s5t4n 1/1 Running 0 7m23s fluent-bit-ds-zpr6v 1/1 Running 0 7m22s graphql-server-5f5976f4bd-vbb4z 1/1 Running 0 7m13s identity-56f78b8f9f-8h9p9 1/1 Running 0 8m29s influxdb2-0 1/1 Running 0 11m krakend-6f8d995b4d-5khkl 1/1 Running 0 7m7s license-5b5db87c97-jmxzc 1/1 Running 0 9m login-ui-57b57c74b8-6xtv7 1/1 Running 0 7m10s loki-0 1/1 Running 0 11m monitoring-operator-9dbc9c76d-8znck 2/2 Running 0 7m33s nats-0 1/1 Running 0 11m nats-1 1/1 Running 0 10m nats-2 1/1 Running 0 10m nautilus-6b9d88bc86-h8kfb 1/1 Running 0 8m6s nautilus-6b9d88bc86-vn68r 1/1 Running 0 8m35s openapi-b87d77dd8-5dz9h 1/1 Running 0 9m7s polaris-consul-consul-5ljfb 1/1 Running 0 11m polaris-consul-consul-s5d5z 1/1 Running 0 11m polaris-consul-consul-server-0 1/1 Running 0 11m polaris-consul-consul-server-1 1/1 Running 0 11m polaris-consul-consul-server-2 1/1 Running 0 11m polaris-consul-consul-twmpq 1/1 Running 0 11m polaris-mongodb-0 2/2 Running 0 11m polaris-mongodb-1 2/2 Running 0 10m polaris-mongodb-2 2/2 Running 0 10m polaris-ui-84dc87847f-zrg8w 1/1 Running 0 7m12s polaris-vault-0 1/1 Running 0 11m polaris-vault-1 1/1 Running 0 11m polaris-vault-2 1/1 Running 0 11m public-metrics-657698b66f-67pgt 1/1 Running 0 8m47s storage-backend-metrics-6848b9fd87-w7x8r 1/1 Running 0 8m39s storage-provider-5ff5868cd5-r9hj7 1/1 Running 0 8m45s telegraf-ds-dw4hg 1/1 Running 0 7m23s telegraf-ds-k92gn 1/1 Running 0 7m23s telegraf-ds-mmxjl 1/1 Running 0 7m23s telegraf-ds-nhs8s 1/1 Running 0 7m23s telegraf-ds-rj7lw 1/1 Running 0 7m23s telegraf-ds-tqrkb 1/1 Running 0 7m23s telegraf-rs-9mwgj 1/1 Running 0 7m23s telemetry-service-56c49d689b-ffrzx 1/1 Running 0 8m42s tenancy-767c77fb9d-g9ctv 1/1 Running 0 8m52s traefik-5857d87f85-7pmx8 1/1 Running 0 6m49s traefik-5857d87f85-cpxgv 1/1 Running 0 5m34s traefik-5857d87f85-lvmlb 1/1 Running 0 4m33s traefik-5857d87f85-t2xlk 1/1 Running 0 4m33s traefik-5857d87f85-v9wpf 1/1 Running 0 7m3s trident-svc-595f84dd78-zb8l6 1/1 Running 0 8m54s vault-controller-86c94fbf4f-krttq 1/1 Running 0 9m24s
-
Vergewissern Sie sich, dass die Statusbedingungen des Astra darauf hindeuten, dass das Upgrade abgeschlossen und bereit ist:
kubectl get -o yaml -n [netapp-acc or custom namespace] astracontrolcenters.astra.netapp.io astra
Antwort:
conditions: - lastTransitionTime: "2021-10-25T18:49:26Z" message: Astra is deployed reason: Complete status: "True" type: Ready - lastTransitionTime: "2021-10-25T18:49:26Z" message: Upgrading succeeded. reason: Complete status: "False" type: Upgrading
Upgrade von Drittanbieter-Services
Die Drittanbieter-Services Traefik und Cert-Manager werden während früherer Aktualisierungsschritte nicht aktualisiert. Sie können sie optional mithilfe der hier beschriebenen Vorgehensweise aktualisieren oder vorhandene Servicestversionen beibehalten, wenn es vom System benötigt wird. Im Folgenden finden Sie die empfohlene Upgrade-Sequenz für Traefik und Certs-Manager:
Richten Sie ACC-Helm-repo ein, um Traefik und Cert-Manager zu aktualisieren
-
Finden Sie die
enterprise-helm-repo
Die in Ihren lokalen Docker Cache geladen sind:docker images enterprise-helm-repo
Antwort:
REPOSITORY TAG IMAGE ID CREATED SIZE enterprise-helm-repo 21.10.218 7a182d6b30f3 20 hours ago 464MB
-
Starten eines Containers mit dem Tag aus dem vorherigen Schritt:
docker run -dp 8082:8080 enterprise-helm-repo:21.10.218
Antwort:
940436e67fa86d2c4559ac4987b96bb35588313c2c9ddc9cec195651963f08d8
-
Fügen Sie den Helm repo zu Ihren lokalen Host-Repositorys hinzu:
helm repo add acc-helm-repo http://localhost:8082/
Antwort:
"acc-helm-repo" has been added to your repositories
-
Speichern Sie das folgende Python-Skript als Datei, z. B.
set_previous_values.py
:Dieses Python-Skript erstellt zwei Dateien, die in späteren Aktualisierungsschritten verwendet werden, um Steuerwerte beizubehalten. #!/usr/bin/env python3 import json import os NAMESPACE = "netapp-acc" os.system(f"helm get values traefik -n {NAMESPACE} -o json > traefik_values.json") os.system(f"helm get values cert-manager -n {NAMESPACE} -o json > cert_manager_values.json") # reformat traefik values f = open("traefik_values.json", "r") traefik_values = {'traefik': json.load(f)} f.close() with open('traefik_values.json', 'w') as output_file: json.dump(traefik_values, output_file) # reformat cert-manager values f = open("cert_manager_values.json", "r") cm_values = {'cert-manager': json.load(f)} f.close() cm_values['global'] = cm_values['cert-manager']['global'] del cm_values['cert-manager']['global'] with open('cert_manager_values.json', 'w') as output_file: json.dump(cm_values, output_file) print('Done')
-
Führen Sie das Skript aus:
python3.7 ./set_previous_values.py
Traefik-Dienst mit ACC-Helm-repo aktualisieren
Dies muss bereits geschehen um Traefik und Cert-Manager zu aktualisieren,ACC-Helm-Repo einrichten Vor dem Abschluss des folgenden Verfahrens. |
-
Laden Sie das Traefik-Paket mit einem sicheren Dateiübertragungstool wie GNU wget herunter:
wget http://localhost:8082/traefik-0.2.0.tgz
-
Extrahieren Sie die Bilder:
tar -vxzf traefik-0.2.0.tgz
-
Anwenden der Traefik-CRDs:
kubectl apply -f ./traefik/charts/traefik/crds/
-
Suchen Sie die Helmkartenversion, die Sie mit Ihrem aktualisierten Traefik verwenden können:
helm search repo acc-helm-repo/traefik
Antwort:
NAME CHART VERSION APP VERSION DESCRIPTION acc-helm-repo/traefik 0.2.0 2.5.3 Helm chart for Traefik Ingress controller acc-helm-repo/traefik-ingressroutes 0.2.0 2.5.3 A Helm chart for Kubernetes
-
Überprüfen Sie die Datei „traefik_values.json“ für das Upgrade:
-
Öffnen Sie die Datei traefik_Values.json.
-
Prüfen Sie, ob ein Wert für das vorhanden ist
imagePullSecret
Feld. Wenn er leer ist, entfernen Sie den folgenden Text aus der Datei:"imagePullSecrets": [{"name": ""}],
-
Stellen Sie sicher, dass das Traefik-Bild an den richtigen Ort geleitet wird und den richtigen Namen hat:
image: [your_registry_path]/traefik
-
-
Aktualisieren Sie Ihre Traefik-Konfiguration:
helm upgrade --version 0.2.0 --namespace netapp-acc -f traefik_values.json traefik acc-helm-repo/traefik
Antwort:
Release "traefik" has been upgraded. Happy Helming! NAME: traefik LAST DEPLOYED: Mon Oct 25 22:53:19 2021 NAMESPACE: netapp-acc STATUS: deployed REVISION: 2 TEST SUITE: None
Aktualisieren Sie den Cert-Manager-Service
Sie müssen bereits den abgeschlossen haben Traefik-Update Und um Traefik und Cert-Manager zu aktualisieren,ACC-Helm-repo in Helm hinzugefügt Vor dem Abschluss des folgenden Verfahrens. |
-
Suchen Sie die Version des Steuerrads, die Sie mit Ihrem aktualisierten Cert-Manager verwenden möchten:
helm search repo acc-helm-repo/cert-manager
Antwort:
NAME CHART VERSION APP VERSION DESCRIPTION acc-helm-repo/cert-manager 0.3.0 v1.5.4 A Helm chart for cert-manager acc-helm-repo/cert-manager-certificates 0.1.0 1.16.0 A Helm chart for Kubernetes
-
Überprüfen Sie die Datei cert_Manager_values.json für ein Upgrade:
-
Öffnen Sie die Datei cert_Manager_values.json.
-
Prüfen Sie, ob ein Wert für das vorhanden ist
imagePullSecret
Feld. Wenn er leer ist, entfernen Sie den folgenden Text aus der Datei:"imagePullSecrets": [{"name": ""}],
-
Stellen Sie sicher, dass die drei Bilder des Zertifikaten-Managers an den richtigen Ort geleitet werden und die richtigen Namen haben.
-
-
Aktualisieren Sie Ihre Cert-Manager-Konfiguration:
helm upgrade --version 0.3.0 --namespace netapp-acc -f cert_manager_values.json cert-manager acc-helm-repo/cert-manager
Antwort:
Release "cert-manager" has been upgraded. Happy Helming! NAME: cert-manager LAST DEPLOYED: Tue Nov 23 11:20:05 2021 NAMESPACE: netapp-acc STATUS: deployed REVISION: 2 TEST SUITE: None
Überprüfen Sie den Systemstatus
-
Melden Sie sich beim Astra Control Center an.
-
Vergewissern Sie sich, dass alle gemanagten Cluster und Applikationen weiterhin vorhanden und geschützt sind.