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 mediante el operador.

Lo que necesitará

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

  • Debe tener una instalación de Astra Trident basada en CSI. Para comprobar si está ejecutando CSI Trident, examine los pods del espacio de nombres Trident. Si siguen la trident-csi-* Patrón de nombres, está ejecutando CSI Trident.

  • Debe disponer de una instalación de Trident basada en CRD. Esto representa todas las versiones de la versión 19.07 y posteriores. Si tiene una instalación basada en CSI, lo más probable es que tenga una instalación basada en CRD.

  • 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 que ejecute "versión 1.17 y posterior".

  • 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 de 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".

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

Para actualizar desde Trident 21.01 y posterior, aquí se muestra el conjunto de pasos a seguir.

Pasos
  1. Elimine el operador Trident que se ha utilizado para instalar la instancia actual de Astra Trident. Por ejemplo, si va a actualizar desde 21.01, ejecute el siguiente comando:

    kubectl delete -f 21.01/trident-installer/deploy/bundle.yaml -n trident
  2. (Opcional) Si desea modificar los parámetros de instalación, edite el TridentOrchestrator Objeto que se crió al instalar Trident. Se trata de cambios, como la modificación de la imagen Trident personalizada, el registro de imágenes privadas para extraer imágenes de contenedores, la habilitación de registros de depuración o la especificación de secretos de extracción de imágenes.

  3. Instale Astra Trident mediante bundle.yaml Archivo que configura el operador Trident para la nueva versión. Ejecute el siguiente comando:

    kubectl install -f 21.07.1/trident-installer/deploy/bundle.yaml -n trident

Como parte de este paso, el operador Trident de 21.07.1 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

Para actualizar desde una instancia de Astra Trident instalada mediante el operador Namespace-scoped (versiones 20.07 a 20.10), a continuación encontrará el conjunto de pasos que hay que seguir:

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 [21.01]
    $ mkdir 21.07.1
    $ cd 21.07.1
    $ wget https://github.com/NetApp/trident/releases/download/v21.07.1/trident-installer-21.07.1.tar.gz
    $ tar -xf trident-installer-21.07.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 bundle.yaml archivo utilizado para implementar el operador namespace-scoped. Usted puede obtener bundle.yaml desde la "Repositorio de Trident". Asegúrese de utilizar la rama adecuada.

    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 "lista de parámetros".
    #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
    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 de ámbito del clúster.

    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 21.07.1.
    Importante La actualización de Astra Trident mediante el uso del operador con ámbito del clúster da como resultado 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/21.07.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-csi-79df798bdc-m79dc        6/6     Running   0          1m41s
    trident-csi-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:                v21.07.1

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.

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

  2. Utilice la helm upgrade comando. Consulte el siguiente ejemplo:

    $ helm upgrade <name> trident-operator-21.07.1.tgz

    donde trident-operator-21.07.1.tgz refleja la versión a la que desea actualizar.

  3. Ejecución helm list para comprobar que la versión de la gráfica y de la aplicación se han actualizado.

Nota Para pasar los datos de configuración durante la actualización, utilice --set.

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

$ helm upgrade <name> trident-operator-21.07.1-custom.tgz --set tridentDebug=true

Si usted corre $ tridentctl logs, puede ver los mensajes de depuración.

Nota Si establece cualquier opción no predeterminada durante la instalación inicial, asegúrese de que las opciones se incluyen en el comando upgrade o, de lo contrario, los valores se restablecerán a sus valores predeterminados.

Actualizar desde una instalación que no sea del operador

Si dispone de una instancia de CSI Trident que cumpla con los requisitos previos indicados anteriormente, puede actualizar a la versión más reciente del operador de Trident.

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

    # Download the release required [21.07.1]
    $ mkdir 21.07.1
    $ cd 21.07.1
    $ wget https://github.com/NetApp/trident/releases/download/v21.07.1/trident-installer-21.07.1.tar.gz
    $ tar -xf trident-installer-21.07.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-csi-79df798bdc-m79dc        6/6     Running   0          150d
    trident-csi-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 initate 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:                v21.07.1

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