Actualizar con el operador
Puede actualizar fácilmente una instalación existente de Astra Trident con el operador.
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".
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.
-
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
-
(Opcional) Si desea modificar los parámetros de instalación, edite el
TridentOrchestrator
Objeto creado al instalar Trident. Esto puede incluir cambios, como modificar la imagen Trident personalizada, 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. -
Instale Astra Trident mediante
bundle.yaml
Archivo que configura el operador Trident para la nueva versión. Ejecute el siguiente comando:kubectl create -f 21.10.0/trident-installer/deploy/bundle.yaml -n trident
Como parte de este paso, el operador Trident de 21.10.0 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:
-
Compruebe el estado de la instalación existente de Trident. Para ello, compruebe el estado * de
TridentProvisioner
. El estado debe serInstalled
.$ kubectl describe tprov trident -n trident | grep Message: -A 3 Message: Trident installed Status: Installed Version: v20.10.1
Si el estado muestra Updating
, asegúrese de resolverlo antes de continuar. Para obtener una lista de los posibles valores de estado, consulte "aquí". -
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
-
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 obtenerbundle.yaml
desde la "Repositorio de Trident". Asegúrese de utilizar la rama adecuada.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ónimagePullSecrets
) 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. -
(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}}'
-
Instale el operador de ámbito del clúster.
La instalación del operador de ámbito del clúster inicia la migración de TridentProvisioner
objetos a.TridentOrchestrator
objetos, eliminacionesTridentProvisioner
los objetos y latridentprovisioner
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.La actualización de Astra Trident mediante el uso del operador con ámbito del clúster da como resultado la migración de tridentProvisioner
atridentOrchestrator
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.
-
Descargue la última versión de Astra Trident.
-
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. -
Ejecución
helm list
para comprobar que la versión de la gráfica y de la aplicación se han actualizado.
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.
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.
-
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
-
Cree el
tridentorchestrator
CRD del manifiesto.$ kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
-
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
-
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.