Skip to main content
Hay disponible una nueva versión de este producto.
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Actualice Astra Control Center

Colaboradores

Para actualizar Astra Control Center, descargue el paquete de instalación desde el sitio de soporte de NetApp y complete estas instrucciones para actualizar los componentes de Astra Control Center en su entorno. Puede utilizar este procedimiento para actualizar Astra Control Center en entornos conectados a Internet o con conexión por aire.

Lo que necesitará
Acerca de esta tarea

El proceso de actualización del Centro de control de Astra le guiará por los siguientes pasos de alto nivel:

Importante No ejecute el siguiente comando durante todo el proceso de actualización para evitar eliminar todas las POD de Astra Control Center: kubectl delete -f astra_control_center_operator_deploy.yaml
Consejo Realice actualizaciones en una ventana de mantenimiento cuando no se estén ejecutando las programaciones, los backups y las snapshots.
Nota Los comandos de Podman se pueden utilizar en lugar de los comandos de Docker si está utilizando Podman de Red Hat en lugar de Docker Engine.

Descargue el paquete Astra Control Center

  1. Descargue el paquete de actualización de Astra Control Center (astra-control-center-[version].tar.gz) del "Sitio de soporte de NetApp".

  2. (Opcional) Use el siguiente comando para verificar la firma del paquete:

    openssl dgst -sha256 -verify astra-control-center[version].pub -signature <astra-control-center[version].sig astra-control-center[version].tar.gz

Desembale el paquete y cambie el directorio

  1. Extraiga las imágenes:

    tar -vxzf astra-control-center-[version].tar.gz
  2. Cambie al directorio Astra.

    cd astra-control-center-[version]

Agregue las imágenes al registro local

  1. Agregue los archivos del directorio imagen de Astra Control Center al registro local.

    Nota Consulte una secuencia de comandos de ejemplo para la carga automática de imágenes a continuación.
    1. Inicie sesión en su registro de Docker:

      docker login [your_registry_path]
    2. Cargue las imágenes en Docker.

    3. Etiquete las imágenes.

    4. empuje las imágenes al registro local.

      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

Instale el operador actualizado de Astra Control Center

  1. Edite la implementación del operador de Astra Control Center yaml (astra_control_center_operator_deploy.yaml) para referirse a su registro local y secreto.

    vim astra_control_center_operator_deploy.yaml
    1. Si utiliza un registro que requiere autenticación, reemplace la línea predeterminada de imagePullSecrets: [] con lo siguiente:

      imagePullSecrets:
      - name: <name_of_secret_with_creds_to_local_registry>
    2. Cambiar [your_registry_path] para la kube-rbac-proxy imagen a la ruta del registro en la que se insertó la imagen en un paso anterior.

    3. Cambiar [your_registry_path] para la acc-operator-controller-manager imagen a la ruta del registro en la que se insertó la imagen en un paso anterior.

    4. Añada los siguientes valores a la env sección:

      - 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. Instale el operador actualizado de Astra Control Center:

    kubectl apply -f astra_control_center_operator_deploy.yaml

    Respuesta de ejemplo:

    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

Actualice Astra Control Center

  1. Editar el recurso personalizado de Astra Control Center (CR) (astra_control_center_min.yaml) Y cambie la versión Astra (astraVersion dentro de Spec) número a la última:

    kubectl edit acc -n [netapp-acc or custom namespace]
    Nota La ruta de acceso del Registro debe coincidir con la ruta de acceso del Registro en la que ha insertado las imágenes en un paso anterior.
  2. Añada las siguientes líneas dentro de additionalValues dentro de Spec En el Centro de control de Astra CR:

    additionalValues:
        nautilus:
          startupProbe:
            periodSeconds: 30
            failureThreshold: 600
  3. Debe realizar una de las siguientes acciones:

    1. Si no tiene su propio IngressController o Ingress y ha estado utilizando el Astra Control Center con su puerta de enlace Traefik como servicio de tipo LoadBalancer y desea continuar con esa configuración, especifique otro campo ingressType (si aún no está presente) y configúrelo en AccTraefik.

      ingressType: AccTraefik
    2. Si desea cambiar a la implementación de entrada genérica predeterminada de Astra Control Center, proporcione su propia configuración IngressController/Ingress (con terminación TLS, etc.), abra una ruta a Astra Control Center y establezca ingressType para Generic.

      ingressType: Generic
      Consejo Si omite el campo, el proceso se convierte en la implementación genérica. Si no desea la implementación genérica, asegúrese de agregar el campo.
  4. (Opcional) Verifique que los POD terminan y estén disponibles de nuevo:

    watch kubectl get po -n [netapp-acc or custom namespace]
  5. Espere a que las condiciones de estado de Astra indiquen que la actualización está completa y lista:

    kubectl get -o yaml -n [netapp-acc or custom namespace] astracontrolcenters.astra.netapp.io astra

    Respuesta:

    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. Vuelva a iniciar sesión y compruebe que todos los clústeres y aplicaciones gestionados siguen presentes y protegidos.

  7. Si el operador no actualizó el gerente de cert, actualice los servicios de terceros, a continuación.

Actualizar servicios de terceros (opcional)

Los servicios de otros fabricantes Traefik y Cert-Manager no se actualizan durante los pasos de actualización anteriores. Opcionalmente, puede actualizarlos con el procedimiento descrito aquí o conservar versiones de servicio existentes si su sistema lo requiere.

  • Traefik: Por defecto, Astra Control Center gestiona el ciclo de vida de la implementación de Traefik. Ajuste externalTraefik para false (Predeterminado) indica que no existe ninguna Traefik externa en el sistema y que Astra Control Center está instalando y gestionando Traefik. En este caso, externalTraefik se establece en false.

    Por otro lado, si usted tiene su propio despliegue de Traefik, set externalTraefik para true. En este caso, usted mantiene la implementación y Astra Control Center no actualizará los CRD, a menos que shouldUpgrade se establece en true.

  • Cert-Manager: De forma predeterminada, Astra Control Center instala el cert-Manager (y CRD) a menos que usted establezca externalCertManager para true. Configurado shouldUpgrade para true Para que Astra Control Center actualice los CRD.

Traefik se actualiza si se cumple alguna de las siguientes condiciones:

  • ExternalTraefik: Falso OR

  • ExternalTraefik: Verdadero Y deberíldUpgrade: Verdadero.

Pasos
  1. Edite el acc CR:

    kubectl edit acc -n [netapp-acc or custom namespace]
  2. Cambie el externalTraefik y la shouldUpgrade campo para uno de los dos true o. false según se necesite.

    crds:
        externalTraefik: false
        externalCertManager: false
        shouldUpgrade: false

Comprobar el estado del sistema

  1. Inicie sesión en Astra Control Center.

  2. Compruebe que todos los clústeres y aplicaciones gestionados siguen presentes y protegidos.

Configure la entrada para el equilibrio de carga

Puede configurar un objeto de entrada de Kubernetes que gestione el acceso externo a los servicios, como el equilibrio de carga en un clúster.

  • La actualización predeterminada utiliza la implementación de ingreso genérico. En este caso, también deberá configurar un controlador de entrada o un recurso de entrada.

  • Si no desea un controlador de entrada y desea conservar lo que ya tiene, configure ingressType para AccTraefik.

Nota Para obtener más información sobre el tipo de servicio de "LoadBalancer" y la entrada, consulte "Requisitos".

Los pasos varían en función del tipo de controlador de entrada que utilice:

  • Controlador de entrada nginx

  • Controlador OpenShift Ingress

Lo que necesitará
  • En la especificación CR,

    • Si crd.externalTraefik está presente, debe estar configurado en false O.

    • Si crd.externalTraefik es true, crd.shouldUpgrade también debería ser true.

  • El requerido "controlador de entrada" ya debe ponerse en marcha.

  • La "clase de entrada" ya se debe crear la correspondiente al controlador de entrada.

  • Se utilizan versiones de Kubernetes entre e incluidas v1.19 y v1.21.

Pasos para el controlador de entrada Nginx
  1. Utilice el secreto existente secure-testing-cert o cree un secreto de tipo[kubernetes.io/tls] Para una clave privada TLS y un certificado en netapp-acc (o nombre personalizado) como se describe en "Secretos TLS".

  2. Implemente un recurso de entrada en netapp-acc espacio de nombres (o con nombre personalizado) para un esquema obsoleto o nuevo:

    1. Para un esquema obsoleto, siga este ejemplo:

      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. Para un nuevo esquema, siga este ejemplo:

    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
Pasos para el controlador de entrada de OpenShift
  1. Obtenga su certificado y consiga los archivos de clave, certificado y CA listos para su uso por la ruta OpenShift.

  2. Cree la ruta OpenShift:

    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

Compruebe la configuración de entrada

Puede verificar la configuración de entrada antes de continuar.

  1. Asegúrese de que Traefik ha cambiado a. clusterIP Desde LoadBalancer:

    kubectl get service traefik -n [netapp-acc or custom namespace]
  2. Verificar rutas en Traefik:

    Kubectl get ingressroute ingressroutetls -n [netapp-acc or custom namespace]
    -o yaml | grep "Host("
    Nota El resultado debe estar vacío.