Preguntas frecuentes sobre migración de CSI de Amazon EBS - Amazon EKS

Ayude a mejorar esta página

¿Quiere contribuir a esta guía del usuario? Desplácese hasta el final de esta página y seleccione Editar esta página en GitHub. Sus contribuciones ayudarán a que nuestra guía del usuario sea mejor para todos.

Preguntas frecuentes sobre migración de CSI de Amazon EBS

importante

Si tiene Pods ejecutándose en una versión 1.22 o un clúster anterior, debe instalar el Controlador de Amazon EBS CSI antes de actualizar su clúster a la versión 1.23 para evitar la interrupción del servicio.

La característica de migración de la interfaz de almacenamiento en contenedores (CSI) de Amazon EBS transfiere la responsabilidad de administrar las operaciones de almacenamiento del aprovisionador de almacenamiento EBS integrado en árbol de Amazon EBS al controlador CSI de Amazon EBS.

¿Qué son los controladores CSI?

Los controladores CSI:

  • sustituyen los controladores de almacenamiento “en árbol” de Kubernetes que existen en el código de origen del proyecto de Kubernetes.

  • funcionan con proveedores de almacenamiento, como Amazon EBS.

  • proporcionan un modelo de complemento simplificado que facilita las cosas a los proveedores de almacenamiento como AWS para lanzar características y mantener la compatibilidad sin depender del ciclo de lanzamiento de Kubernetes.

Para obtener más información, consulte Introducción en la documentación de CSI de Kubernetes.

¿Qué es la migración de CSI?

La característica de migración de CSI de Kubernetes traslada la responsabilidad de administrar las operaciones de almacenamiento de los complementos de almacenamiento existentes en árbol, como kubernetes.io/aws-ebs, a los controladores CSI correspondientes. Los objetos StorageClass, PersistentVolume y PersistentVolumeClaim (PVC) existentes siguen funcionando siempre que esté instalado el controlador CSI correspondiente. Cuando la característica está habilitada:

  • Las cargas de trabajo existentes que utilizan PVC siguen funcionando como siempre lo han hecho.

  • Kubernetes pasa el control de todas las operaciones de administración de almacenamiento a los controladores de CSI.

Para obtener más información, consulte Kubernetes1.23: Actualización del estado de migración del volumen de en árbol a CSI de Kubernetes en el blog Kubernetes.

Para ayudarle a migrar del complemento en árbol a los controladores de CSI, los marcadores CSIMigration y CSIMigrationAWS se encuentran habilitadas de forma predeterminada en Amazon EKS versión 1.23 y clústeres posteriores. Estos marcadores permiten que el clúster traduzca las API del árbol a sus API de CSI equivalentes. Estos marcadores están colocados en el plano de control de Kubernetes administrado por Amazon EKS y en los ajustes de kubelet configurados en AMI optimizadas para Amazon EKS. Si tiene Pods con volúmenes de Amazon EBS en su clúster, debe instalar el controlador CSI de Amazon EBS antes de actualizar el clúster a la versión 1.23. Si no lo hace, es posible que las operaciones de volumen, como el aprovisionamiento y el montaje, no funcionen según lo esperado. Para obtener más información, consulte Almacenamiento de volúmenes de Kubernetes con Amazon EBS.

nota

El aprovisionador StorageClass en árbol se llama kubernetes.io/aws-ebs. El aprovisionador StorageClass de CSI de Amazon EBS se llama ebs.csi.aws.com.

¿Puedo montar volúmenes kubernetes.io/aws-ebs StorageClass en la versión 1.23 y clústeres posteriores?

Sí, siempre y cuando Controlador de CSI de Amazon EBSesté instalado. Para la versión recién creada 1.23 y los clústeres posteriores, se recomienda instalar el controlador CSI de Amazon EBS como parte del proceso de creación del clúster. También recomendamos usar únicamente StorageClasses basado en el aprovisionador ebs.csi.aws.com.

Si ha actualizado el plano de control del clúster a la versión 1.23 y aún no ha actualizado sus nodos a 1.23, a continuación, los marcadores CSIMigration y CSIMigrationAWS de kubelet no están habilitados. En este caso, el controlador integrado en el árbol se utiliza para montar los volúmenes basados en kubernetes.io/aws-ebs. Sin embargo, el controlador CSI de Amazon EBS debe estar instalado para garantizar que los Pods con volúmenes basados en kubernetes.io/aws-ebs se puedan programar. El controlador también es necesario para que otras operaciones de volumen se realicen correctamente.

¿Puedo aprovisionar volumen kubernetes.io/aws-ebs StorageClass en Amazon EKS 1.23 y los clústeres posteriores?

Sí, siempre y cuando el controlador de CSI de Amazon EBS esté instalado.

¿El aprovisionador kubernetes.io/aws-ebs StorageClass se ha eliminado de Amazon EKS?

El aprovisionador StorageClass de kubernetes.io/aws-ebs y el tipo de volumen awsElasticBlockStore ya no reciben soporte, pero no hay planes de eliminarlos. Estos recursos se tratan como parte de la API de Kubernetes.

¿Cómo instalo el controlador de CSI de Amazon EBS?

Le recomendamos que instale el controlador CSI de Amazon EBS del complemento Amazon EKS. Cuando se requiere una actualización para el complemento de Amazon EKS, inicia la actualización y Amazon EKS actualiza el complemento en su nombre. Si quiere administrar el controlador, puede instalarlo mediante el gráfico de Helm de código abierto.

importante

El controlador de Amazon EBS en árbol de Kubernetes se encuentra en el plano de control de Kubernetes. Utiliza los permisos de IAM asignados al Rol de IAM del clúster de Amazon EKS para aprovisionar los volúmenes de Amazon EBS. El controlador de CSI de Amazon EBS se ejecuta en nodos. El controlador necesita permisos de IAM para aprovisionar volúmenes. Para obtener más información, consulte Paso 1: Crear un rol de IAM.

¿Cómo puedo comprobar si el controlador CSI de Amazon EBS está instalado en mi clúster?

Para determinar si el controlador está instalado en su clúster, ejecute el siguiente comando:

kubectl get csidriver ebs.csi.aws.com

Para comprobar si la instalación está gestionada por Amazon EKS, ejecute el siguiente comando:

aws eks list-addons --cluster-name my-cluster

¿Impedirá Amazon EKS una actualización del clúster a la versión 1.23 si aún no he instalado el controlador CSI de Amazon EBS?

No.

¿Qué pasa si me olvido de instalar el controlador CSI de Amazon EBS antes de actualizar mi clúster a la versión 1.23? ¿Puedo instalar el controlador después de actualizar el clúster?

Sí, pero las operaciones de volumen que requieren el controlador CSI de Amazon EBS fallarán después de la actualización del clúster hasta que se instale el controlador.

¿Cuál es el StorageClass predeterminado aplicado en la versión 1.23 recién creada de Amazon EKS y clústeres posteriores?

El comportamiento StorageClass predeterminado permanece sin cambios. Con cada clúster nuevo, Amazon EKS aplica un StorageClass basado en kubernetes.io/aws-ebs llamado gp2. No planeamos quitar nunca este StorageClass de los clústeres recién creados. Separado del clúster predeterminado StorageClass, si crea un StorageClass basado en ebs.csi.aws.com sin especificar un tipo de volumen, el controlador CSI de Amazon EBS volverá de forma predeterminada a usar gp3.

¿Amazon EKS realizará cambios en las StorageClasses ya presentes en mi clúster existente cuando actualice mi clúster a la versión 1.23?

No.

¿Cómo puedo migrar un volumen persistente desde kubernetes.io/aws-ebsStorageClass a ebs.csi.aws.com usando instantáneas?

Para migrar un volumen persistente, consulte Migración de clústeres de Amazon EKS de volúmenes de EBS gp2 a gp3 en el blog de AWS.

¿Cómo modifico un volumen de Amazon EBS mediante anotaciones?

Para empezar aws-ebs-csi-driverv1.19.0-eksbuild.2, puede modificar los volúmenes de Amazon EBS mediante anotaciones dentro de sus PersistentVolumeClaim (PVC). La nueva característica de modificación de volumen se implementa como un sidecar adicional, llamado volumemodifier. Para obtener más información, consulte Simplificación de la migración y modificación de volúmenes de Amazon EBS en Kubernetes mediante el controlador CSI de EBS en el blog de AWS.

¿Se admite la migración de cargas de trabajo de Windows?

Sí. Si va a instalar el controlador CSI de Amazon EBS mediante el gráfico de Helm de código abierto, establezca node.enableWindows a true. Este se encuentra establecido de forma predeterminada si se encuentra instalado el controlador CSI de Amazon EBS como complemento de Amazon EKS. Al crear StorageClasses, defina el fsType en un sistema de archivos Windows, como ntfs. Las operaciones de volumen para las cargas de trabajo de Windows se migran al controlador CSI de Amazon EBS de la misma manera que para las cargas de trabajo de Linux.