Skip to main content
Eine neuere Version dieses Produkts ist erhältlich.
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Upgrade Astra Control Center

Beitragende

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.

Was Sie benötigen
Über diese Aufgabe

Der Astra Control Center Upgrade-Prozess führt Sie durch die folgenden grundlegenden Schritte:

Wichtig 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
Tipp Führen Sie Upgrades in einem Wartungsfenster durch, wenn Zeitpläne, Backups und Snapshots nicht ausgeführt werden.
Hinweis 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

  1. Laden Sie das Astra Control Center-Upgrade-Bundle herunter (astra-control-center-[version].tar.gz) Vom "NetApp Support Website".

  2. (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

  1. Extrahieren Sie die Bilder:

    tar -vxzf astra-control-center-[version].tar.gz
  2. Wechseln Sie in das Astra-Verzeichnis.

    cd astra-control-center-[version]

Fügen Sie die Bilder Ihrer lokalen Registrierung hinzu

  1. Fügen Sie die Dateien im Astra Control Center-Bildverzeichnis Ihrer lokalen Registrierung hinzu.

    Hinweis Siehe ein Beispielskript für das automatische Laden von Bildern unten.
    1. Melden Sie sich bei Ihrer Docker Registrierung an:

      docker login [your_registry_path]
    2. Laden Sie die Images in Docker.

    3. Markieren Sie die Bilder.

    4. 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

  1. 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
    1. 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>
    2. Ändern [your_registry_path] Für das kube-rbac-proxy Bild zum Registrierungspfad, in dem Sie die Bilder in ein geschoben haben Vorheriger Schritt.

    3. Ändern [your_registry_path] Für das acc-operator-controller-manager Bild zum Registrierungspfad, in dem Sie die Bilder in ein geschoben haben Vorheriger Schritt.

    4. Fügen Sie dem die folgenden Werte hinzu env Abschnitt:

      - 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
        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"
              - name: ACCOP_HELM_UPGRADETIMEOUT
                value: 300m
              image: [your_registry_path]/acc-operator:[version x.y.z]
              imagePullPolicy: IfNotPresent
            imagePullSecrets: []
  2. 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

  1. Bearbeiten der benutzerdefinierten Ressource des Astra Control Center (CR) (astra_control_center_min.yaml) Und ändern Sie die Astra-Version (astraVersion Innerhalb von Spec) Nummer auf die neueste:

    kubectl edit acc -n [netapp-acc or custom namespace]
    Hinweis Ihr Registrierungspfad muss mit dem Registrierungspfad übereinstimmen, in dem Sie die Bilder in A verschoben haben Vorheriger Schritt.
  2. Fügen Sie die folgenden Zeilen in hinzu additionalValues Innerhalb von Spec Im Astra Control Center CR:

    additionalValues:
        nautilus:
          startupProbe:
            periodSeconds: 30
            failureThreshold: 600
  3. Führen Sie einen der folgenden Schritte aus:

    1. Wenn Sie nicht über Ihren eigenen IngressController oder Ingress verfügen und das Astra Control Center mit seinem Traefik Gateway als Lastausgleichsdienst verwenden und mit diesem Setup fortfahren möchten, geben Sie ein anderes Feld an ingressType (Falls noch nicht vorhanden) und auf einstellen AccTraefik.

      ingressType: AccTraefik
    2. Wenn Sie zur standardmäßigen Ingress-Bereitstellung von Astra Control Center wechseln möchten, stellen Sie Ihr eigenes Einstellungen für den IngressController/Ingress (mit TLS-Terminierung usw.) bereit, öffnen Sie eine Route zum Astra Control Center und stellen Sie sie ein ingressType Bis Generic.

      ingressType: Generic
      Tipp Wenn Sie das Feld nicht angeben, wird der Prozess zur allgemeinen Bereitstellung. Wenn die allgemeine Bereitstellung nicht gewünscht ist, fügen Sie das Feld hinzu.
  4. (Optional) Stellen Sie sicher, dass die Pods beendet werden und wieder verfügbar sind:

    watch kubectl get po -n [netapp-acc or custom namespace]
  5. Warten Sie, bis die Statusbedingungen des Astra angezeigt werden, 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
  6. Melden Sie sich erneut an, und überprüfen Sie, ob alle gemanagten Cluster und Apps weiterhin vorhanden und geschützt sind.

  7. Wenn der Betreiber den Cert-Manager nicht aktualisiert hat, aktualisieren Sie als nächstes die Dienste von Drittanbietern.

Upgrade von Services von Drittanbietern (optional)

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.

  • Traefik: Standardmäßig verwaltet Astra Control Center den Lebenszyklus der Traefik-Bereitstellung. Einstellung externalTraefik Bis false (Standard) zeigt an, dass im System keine externe Traefik vorhanden ist und dass Traefik vom Astra Control Center installiert und verwaltet wird. In diesem Fall externalTraefik Ist auf festgelegt false.

    Wenn Sie hingegen Ihre eigene Traefik-Bereitstellung haben, stellen Sie fest externalTraefik Bis true. In diesem Fall erhalten Sie die Bereitstellung, und Astra Control Center wird nicht aktualisieren die CRDs, es sei denn shouldUpgrade Ist auf festgelegt true.

  • Cert-Manager: Astra Control Center installiert standardmäßig den Cert-Manager (und CRDs), es sei denn, Sie haben es eingestellt externalCertManager Bis true. Einstellen shouldUpgrade Bis true Astra Control Center auf die CRDs aktualisieren zu lassen.

Traefik wird aktualisiert, wenn eine der folgenden Bedingungen erfüllt ist:

  • Externer Traefik: Falsch ODER

  • Externer Traefik: Wahr UND sollte Upgrade: Wahr.

Schritte
  1. Bearbeiten Sie das acc CR:

    kubectl edit acc -n [netapp-acc or custom namespace]
  2. Ändern Sie das externalTraefik Feld und das shouldUpgrade Feld an true Oder false Nach Bedarf.

    crds:
        externalTraefik: false
        externalCertManager: false
        shouldUpgrade: false

Überprüfen Sie den Systemstatus

  1. Melden Sie sich beim Astra Control Center an.

  2. Vergewissern Sie sich, dass alle gemanagten Cluster und Applikationen weiterhin vorhanden und geschützt sind.

Eindringen für den Lastenausgleich einrichten

Sie können ein Kubernetes Ingress-Objekt einrichten, das den externen Zugriff auf die Services, wie etwa den Lastausgleich in einem Cluster, managt.

  • Beim Standard-Upgrade wird die allgemeine Ingress-Bereitstellung verwendet. In diesem Fall müssen Sie außerdem einen Ingress-Controller oder eine Ingress-Ressource einrichten.

  • Wenn Sie keinen Ingress-Controller möchten und das beibehalten möchten, was Sie bereits haben, setzen Sie die Einstellung ein ingressType Bis AccTraefik.

Hinweis Weitere Informationen zum Servicetyp „loadbalancer“ und Ingress finden Sie unter "Anforderungen".

Die Schritte unterscheiden sich je nach Art des Ingress-Controllers, den Sie verwenden:

  • Nginx-Ingress-Controller

  • OpenShift-Eingangs-Controller

Was Sie benötigen
  • In der CR-Spezifikation

    • Wenn crd.externalTraefik Ist vorhanden, sollte auf festgelegt werden false ODER

    • Wenn crd.externalTraefik Ist true, crd.shouldUpgrade Sollte auch so sein true.

  • Erforderlich "Eingangs-Controller" Sollte bereits eingesetzt werden.

  • Der "Eingangsklasse" Entsprechend der Eingangs-Steuerung sollte bereits erstellt werden.

  • Sie verwenden Kubernetes-Versionen zwischen und v1.19 und v1.21.

Schritte für Nginx Ingress Controller
  1. Verwenden Sie das vorhandene Geheimnis secure-testing-cert Oder erstellen Sie ein Geheimnis des Typs[kubernetes.io/tls] Für einen privaten TLS-Schlüssel und ein Zertifikat in netapp-acc (Oder Custom-Name) Namespace wie in beschrieben "TLS-Geheimnisse".

  2. Bereitstellung einer Ingress-Ressource in netapp-acc (Oder benutzerdefinierter Name) Namespace für ein überkommenes oder ein neues Schema:

    1. Führen Sie für ein deprecated Schema folgende Beispiel aus:

      apiVersion: extensions/v1beta1
      kind: Ingress
      metadata:
        name: ingress-acc
        namespace: [netapp-acc or custom namespace]
        annotations:
          kubernetes.io/ingress.class: nginx
      spec:
        tls:
        - hosts:
          - <ACC address>
          secretName: [tls secret name]
        rules:
        - host: [ACC address]
          http:
            paths:
            - backend:
              serviceName: traefik
              servicePort: 80
              pathType: ImplementationSpecific
    2. Führen Sie für ein neues Schema das folgende Beispiel aus:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: netapp-acc-ingress
      namespace: [netapp-acc or custom namespace]
    spec:
      ingressClassName: [class name for nginx controller]
      tls:
      - hosts:
        - <ACC address>
        secretName: [tls secret name]
      rules:
      - host: <ACC address>
        http:
          paths:
            - path:
              backend:
                service:
                  name: traefik
                  port:
                    number: 80
              pathType: ImplementationSpecific
Schritte für OpenShift-Eingangs-Controller
  1. Beschaffen Sie Ihr Zertifikat, und holen Sie sich die Schlüssel-, Zertifikat- und CA-Dateien für die OpenShift-Route bereit.

  2. Erstellen Sie die OpenShift-Route:

    oc create route edge --service=traefik
    --port=web -n [netapp-acc or custom namespace]
    --insecure-policy=Redirect --hostname=<ACC address>
    --cert=cert.pem --key=key.pem

Überprüfen Sie, ob die Eindringen eingerichtet ist

Sie können den Ingress überprüfen, bevor Sie fortfahren.

  1. Stellen Sie sicher, dass Traefik in geändert wurde clusterIP Vom Loadbalancer:

    kubectl get service traefik -n [netapp-acc or custom namespace]
  2. Überprüfen Sie Routen in Traefik:

    Kubectl get ingressroute ingressroutetls -n [netapp-acc or custom namespace]
    -o yaml | grep "Host("
    Hinweis Das Ergebnis sollte leer sein.