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.

Actualizar con el operador

Colaboradores

Puede actualizar fácilmente una instalación existente de Astra Trident con el operador.

Antes de empezar

Para realizar la actualización con el operador, se deben cumplir las siguientes condiciones:

  • Debe disponer de una instalación de Astra Trident basada en CSI. Todas las versiones de 19.07 en adelante se basan en CSI. Es posible examinar los pods en el espacio de nombres de Trident para verificarlos.

    • La asignación de nombres de POD en versiones anteriores a la 23.01 sigue a trident-csi-* convención.

    • La nomenclatura de POD en 23.01 y versiones posteriores utiliza: trident-controller-<generated id> para el pod de la controladora; trident-node-<operating system>-<generated id> para los pods de nodo; trident-operator-<generated id> para el podómetro del operador.

  • Si ha desinstalado CSI Trident y los metadatos de la instalación persisten, puede realizar la actualización mediante el operador.

  • Solo debe haber una instalación de Astra Trident en todos los espacios de nombres en un clúster de Kubernetes determinado.

  • Debe usar un clúster de Kubernetes en ejecución "Una versión de Kubernetes compatible".

  • Si hay CRD de instantánea alfa, debe eliminarlos con tridentctl obliviate alpha-snapshot-crd. De esta forma se eliminan los CRD para la especificación de instantánea alfa. Para obtener información sobre las snapshots existentes que se deben eliminar/migrar, consulte "este blog".

Advertencia
  • Al actualizar Trident con el operador en OpenShift Container Platform, debe actualizar a Trident 21.01.1 o una versión posterior. El operador Trident publicado con 21.01.0 contiene un problema conocido que se ha solucionado en 21.01.1. Si quiere más detalles, consulte "Detalles del problema en GitHub".

  • Si utiliza una, no utilice el operador para actualizar Trident `etcd`Versión de Trident basada en (19.04 o anterior).

Actualice una instalación de operador de Trident de ámbito de clúster

Siga estos pasos para actualizar una instalación de operador de Trident de ámbito del clúster. Todas las versiones 21.01 y posteriores de Astra Trident utilizan un operador con ámbito de clúster.

Pasos
  1. Compruebe su versión de Astra Trident:

    ./tridentctl -n trident version
  2. Elimine el operador Trident que se ha utilizado para instalar la instancia actual de Astra Trident. Por ejemplo, si va a actualizar desde 22.01, ejecute el siguiente comando:

    kubectl delete -f 22.01/trident-installer/deploy/bundle.yaml -n trident
  3. Si ha personalizado la instalación inicial mediante TridentOrchestrator atributos, puede editar TridentOrchestrator objeto para modificar los parámetros de instalación. Esto podría incluir cambios realizados para especificar registros de imágenes de Trident y CSI reflejados para el modo sin conexión, habilitar registros de depuración o especificar secretos de extracción de imágenes.

  4. Instale Astra Trident con el archivo YAML de paquete correcto para su entorno y la versión Astra Trident. Por ejemplo, si está instalando Astra Trident 23.01 para Kubernetes 1.26, ejecute el siguiente comando:

    kubectl create -f 23.01.1/trident-installer/deploy/bundle_post_1_25.yaml -n trident
    Nota

    Trident proporciona un archivo de paquete que se puede usar para instalar el operador y crear objetos asociados para la versión de Kubernetes.

Resultados

El operador de Trident identifica una instalación existente de Astra Trident y la actualiza a la misma versión que el operador.

Actualice la instalación de un operador de ámbito de espacio de nombres

Siga estos pasos para actualizar desde una instancia de Astra Trident instalada mediante el operador Namespace (versiones 20.07 a 20.10).

Pasos
  1. Compruebe el estado de la instalación existente de Trident. Para ello, compruebe el estado * de TridentProvisioner. El estado debe ser Installed.

    kubectl describe tprov trident -n trident | grep Message: -A 3
    Message:  Trident installed
    Status:   Installed
    Version:  v20.10.1
    Nota Si el estado muestra Updating, asegúrese de resolverlo antes de continuar. Para obtener una lista de los posibles valores de estado, consulte "aquí".
  2. Cree el TridentOrchestrator CRD mediante el manifiesto proporcionado con el instalador de Trident.

    # Download the release required [23.01.1]
    mkdir 23.01.1
    cd 23.01.1
    wget https://github.com/NetApp/trident/releases/download/v23.01.1/trident-installer-23.01.1.tar.gz
    tar -xf trident-installer-23.01.1.tar.gz
    cd trident-installer
    kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
  3. Elimine el operador de ámbito del espacio de nombres mediante su manifiesto. Para completar este paso, necesita el archivo YLMA de paquete utilizado para desplegar el operador de ámbito de espacio de nombres de https://github.com/NetApp/trident/tree/stable/vXX.XX/deploy/BUNDLE.YAML donde vXX.XX es el número de versión y. BUNDLE.YAML Es el nombre del archivo YAML del grupo.

    Nota Debe realizar los cambios necesarios en los parámetros de instalación de Trident (por ejemplo, cambiar los valores para tridentImage, autosupportImage, repositorio privado de imágenes y provisión imagePullSecrets) después de eliminar el operador de ámbito de espacio de nombres y antes de instalar el operador de ámbito de clúster. Para obtener una lista completa de los parámetros que se pueden actualizar, consulte la "opciones de configuración".
    #Ensure you are in the right directory
    pwd
    /root/20.10.1/trident-installer
    
    #Delete the namespace-scoped operator
    kubectl delete -f deploy/<BUNDLE.YAML> -n trident
    serviceaccount "trident-operator" deleted
    clusterrole.rbac.authorization.k8s.io "trident-operator" deleted
    clusterrolebinding.rbac.authorization.k8s.io "trident-operator" deleted
    deployment.apps "trident-operator" deleted
    podsecuritypolicy.policy "tridentoperatorpods" deleted
    
    #Confirm the Trident operator was removed
    kubectl get all -n trident
    NAME                               READY   STATUS    RESTARTS   AGE
    pod/trident-csi-68d979fb85-dsrmn   6/6     Running   12         99d
    pod/trident-csi-8jfhf              2/2     Running   6          105d
    pod/trident-csi-jtnjz              2/2     Running   6          105d
    pod/trident-csi-lcxvh              2/2     Running   8          105d
    
    NAME                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)              AGE
    service/trident-csi   ClusterIP   10.108.174.125   <none>        34571/TCP,9220/TCP   105d
    
    NAME                         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                                     AGE
    daemonset.apps/trident-csi   3         3         3       3            3           kubernetes.io/arch=amd64,kubernetes.io/os=linux   105d
    
    NAME                          READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/trident-csi   1/1     1            1           105d
    
    NAME                                     DESIRED   CURRENT   READY   AGE
    replicaset.apps/trident-csi-68d979fb85   1         1         1       105d

    En esta etapa, la trident-operator-xxxxxxxxxx-xxxxx pod se ha eliminado.

  4. (Opcional) Si es necesario modificar los parámetros de instalación, actualice TridentProvisioner espec. Estos pueden ser cambios como modificar el registro de imágenes privadas para extraer imágenes de contenedores, habilitar registros de depuración o especificar secretos de extracción de imágenes.

    kubectl patch tprov <trident-provisioner-name> -n <trident-namespace> --type=merge -p '{"spec":{"debug":true}}'
  5. Instale el operador Trident.

    Nota La instalación del operador de ámbito del clúster inicia la migración de TridentProvisioner objetos a. TridentOrchestrator objetos, eliminaciones TridentProvisioner los objetos y la tridentprovisioner CRD y actualiza Astra Trident a la versión del operador de ámbito del clúster que se utiliza. En el ejemplo siguiente, Trident se actualiza a 23.01.1.
    Importante La actualización de Astra Trident con el operador Trident provoca la migración de tridentProvisioner a tridentOrchestrator objeto con el mismo nombre. El operador lo maneja automáticamente. La actualización también tendrá instalada Astra Trident en el mismo espacio de nombres que antes.
    #Ensure you are in the correct directory
    pwd
    /root/23.01.1/trident-installer
    
    #Install the cluster-scoped operator in the **same namespace**
    kubectl create -f deploy/<BUNDLE.YAML>
    serviceaccount/trident-operator created
    clusterrole.rbac.authorization.k8s.io/trident-operator created
    clusterrolebinding.rbac.authorization.k8s.io/trident-operator created
    deployment.apps/trident-operator created
    podsecuritypolicy.policy/tridentoperatorpods created
    
    #All tridentProvisioners will be removed, including the CRD itself
    kubectl get tprov -n trident
    Error from server (NotFound): Unable to list "trident.netapp.io/v1, Resource=tridentprovisioners": the server could not find the requested resource (get tridentprovisioners.trident.netapp.io)
    
    #tridentProvisioners are replaced by tridentOrchestrator
    kubectl get torc
    NAME      AGE
    trident   13s
    
    #Examine Trident pods in the namespace
    kubectl get pods -n trident
    NAME                                     READY   STATUS    RESTARTS   AGE
    trident-controller-79df798bdc-m79dc      6/6     Running   0          1m41s
    trident-node-linux-xrst8                 2/2     Running   0          1m41s
    trident-operator-5574dbbc68-nthjv        1/1     Running   0          1m52s
    
    #Confirm Trident has been updated to the desired version
    kubectl describe torc trident | grep Message -A 3
    Message:                Trident installed
    Namespace:              trident
    Status:                 Installed
    Version:                v23.01.1
    Nota La trident-controller y los nombres de pod reflejan la convención de nomenclatura introducida en 23.01.

Actualice la instalación de un operador basado en Helm

Realice los pasos siguientes para actualizar la instalación de un operador basado en Helm.

Advertencia Cuando actualice un clúster de Kubernetes de 1.24 a 1.25 o posterior que tenga instalado Astra Trident, debe actualizar Values.yaml para establecer excludePodSecurityPolicy para true o agregar --set excludePodSecurityPolicy=true para la helm upgrade comando antes de poder actualizar el clúster.
Pasos
  1. Descargue la última versión de Astra Trident.

  2. Utilice la helm upgrade comando donde trident-operator-23.01.1.tgz refleja la versión a la que desea actualizar.

    helm upgrade <name> trident-operator-23.01.1.tgz
    Nota

    Si establece cualquier opción no predeterminada durante la instalación inicial (como especificar registros privados reflejados para imágenes Trident y CSI), utilice --set para asegurarse de que estas opciones están incluidas en el comando upgrade, de lo contrario, los valores se restablecerán a los valores predeterminados.

    Por ejemplo, para cambiar el valor predeterminado de tridentDebug, ejecute el siguiente comando:

    helm upgrade <name> trident-operator-23.01.1-custom.tgz --set tridentDebug=true
  3. Ejecución helm list para comprobar que la versión de la gráfica y de la aplicación se han actualizado. Ejecución tridentctl logs para revisar cualquier mensaje de depuración.

Resultados

El operador de Trident identifica una instalación existente de Astra Trident y la actualiza a la misma versión que el operador.

Actualizar desde una instalación que no sea del operador

Puede actualizarlo a la versión más reciente del operador de Trident desde un tridentctl instalación.

Pasos
  1. Descargue la última versión de Astra Trident.

    # Download the release required [23.01.1]
    mkdir 23.01.1
    cd 23.01.1
    wget https://github.com/NetApp/trident/releases/download/v22.01.1/trident-installer-23.01.1.tar.gz
    tar -xf trident-installer-23.01.1.tar.gz
    cd trident-installer
  2. Cree el tridentorchestrator CRD del manifiesto.

    kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
  3. Despliegue el operador.

    #Install the cluster-scoped operator in the **same namespace**
    kubectl create -f deploy/<BUNDLE.YAML>
    serviceaccount/trident-operator created
    clusterrole.rbac.authorization.k8s.io/trident-operator created
    clusterrolebinding.rbac.authorization.k8s.io/trident-operator created
    deployment.apps/trident-operator created
    podsecuritypolicy.policy/tridentoperatorpods created
    
    #Examine the pods in the Trident namespace
    NAME                                  READY   STATUS    RESTARTS   AGE
    trident-controller-79df798bdc-m79dc   6/6     Running   0          150d
    trident-node-linux-xrst8              2/2     Running   0          150d
    trident-operator-5574dbbc68-nthjv     1/1     Running   0          1m30s
  4. Cree un TridentOrchestrator CR para instalar Astra Trident.

    #Create a tridentOrchestrator to initiate a Trident install
    cat deploy/crds/tridentorchestrator_cr.yaml
    apiVersion: trident.netapp.io/v1
    kind: TridentOrchestrator
    metadata:
      name: trident
    spec:
      debug: true
      namespace: trident
    
    kubectl create -f deploy/crds/tridentorchestrator_cr.yaml
    
    #Examine the pods in the Trident namespace
    NAME                                READY   STATUS    RESTARTS   AGE
    trident-csi-79df798bdc-m79dc        6/6     Running   0          1m
    trident-csi-xrst8                   2/2     Running   0          1m
    trident-operator-5574dbbc68-nthjv   1/1     Running   0          5m41s
    
    #Confirm Trident was upgraded to the desired version
    kubectl describe torc trident | grep Message -A 3
    Message:                Trident installed
    Namespace:              trident
    Status:                 Installed
    Version:                v23.01.1
Resultados

Los back-ends y las CVP existentes están disponibles automáticamente.