Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
Con el controlador de interfaz de almacenamiento de contenedores (CSI) de Mountpoint para Amazon S3
Consideraciones
-
El controlador de CSI de Mountpoint para Amazon S3 no es compatible con imágenes de contenedor basadas en Windows.
-
El controlador de CSI de Mountpoint para Amazon S3 no es compatible actualmente con los Nodos híbridos de Amazon EKS.
-
El controlador de CSI de Mountpoint para Amazon S3 no es compatible con AWS Fargate. Sin embargo, se admiten los contenedores que se ejecutan en Amazon EC2 (ya sea con Amazon EKS o con una instalación personalizada de Kubernetes).
-
El controlador de CSI de Mountpoint para Amazon S3 solo admite el aprovisionamiento estático. No se admite el aprovisionamiento dinámico o la creación de nuevos buckets.
nota
El aprovisionamiento estático se refiere al uso de un bucket de Amazon S3 existente que se especifica como
bucketName
en elvolumeAttributes
del objetoPersistentVolume
. Para obtener más información, consulte Static Provisioningen GitHub. -
Los volúmenes montados con el controlador de CSI de Mountpoint para Amazon S3 no admiten todas las características del sistema de archivos POSIX. Para obtener más información sobre el comportamiento del sistema de archivos, consulte Mountpoint for Amazon S3 file system behavior
en GitHub.
Requisitos previos
-
Un proveedor existente de OpenID Connect (OIDC) de AWS Identity and Access Management (IAM) para su clúster. Para determinar si ya tiene un proveedor o para crear uno, consulte Crear un proveedor de OIDC de IAM para su clúster.
-
La versión 2.12.3 o posterior de AWS CLI instalada y configurada en su dispositivo o AWS CloudShell.
-
La herramienta de línea de comandos de
kubectl
está instalada en su dispositivo o AWS CloudShell. La versión puede ser la misma o hasta una versión secundaria anterior o posterior a la versión de Kubernetes de su clúster. Por ejemplo, si la versión del clúster es1.29
, puede usar la versión1.28
,1.29
o1.30
dekubectl
con él. Para instalar o actualizarkubectl
, consulte Configuración de kubectl y eksctl.
Creación de una política de IAM
El controlador de CSI de Mountpoint para Amazon S3 requiere permisos de Amazon S3 para interactuar con el sistema de archivos. En esta sección se muestra cómo crear una política de IAM que conceda los permisos necesarios.
El siguiente ejemplo de política sigue las recomendaciones de permisos de IAM para Mountpoint. Como alternativa, puede utilizar la política administrada de AWS AmazonS3FullAccess
Para obtener más información sobre los permisos recomendados por Mountpoint, consulte Mountpoint IAM permissions
-
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación izquierdo, elija Policies (Políticas).
-
En la página Políticas, seleccione Crear una política.
-
En el editor de políticas, seleccione JSON.
-
En el editor de políticas, copie y pegue lo siguiente:
importante
Reemplace
amzn-s3-demo-bucket1
por el nombre de su bucket de Amazon S3.{ "Version": "2012-10-17", "Statement": [ { "Sid": "MountpointFullBucketAccess", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1" ] }, { "Sid": "MountpointFullObjectAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*" ] } ] }
Los buckets de directorio, introducidos con la clase de almacenamiento Amazon S3 Express One Zone, utilizan un mecanismo de autenticación diferente al de los buckets de uso general. En lugar de utilizar acciones
s3:*
, debe utilizar la accións3express:CreateSession
. Para más información sobre los buckets de directorio, consulte Buckets de directorio en la Guía de usuario de Amazon S3.A continuación, se muestra un ejemplo de política de privilegios mínimos que utilizaría para un bucket de directorios.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3express:CreateSession", "Resource": "arn:aws:s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket1--usw2-az1--x-s3" } ] }
-
Elija Siguiente.
-
En la página Revisar y crear, asigne un nombre a la política. En este tutorial de ejemplo se utiliza el nombre
AmazonS3CSIDriverPolicy
. -
Seleccione Crear política.
Creación de un rol de IAM
El controlador de CSI de Mountpoint para Amazon S3 requiere permisos de Amazon S3 para interactuar con el sistema de archivos. En esta sección se muestra cómo crear un rol de IAM para delegar estos permisos. Para crear este rol, puede utilizar una de las siguientes herramientas:
nota
La política de IAM AmazonS3CSIDriverPolicy
se creó en la sección anterior.
eksctl
Creación del rol de IAM del controlador de CSI de Mountpoint para Amazon S3 con eksctl
Para crear el rol de IAM y la cuenta de servicio de Kubernetes, ejecute los siguientes comandos. Estos comandos también asocian la política de IAM AmazonS3CSIDriverPolicy
al rol, anotan la cuenta de servicio de Kubernetes (s3-csi-controller-sa
) con el Nombre de recurso de Amazon (ARN) del rol de IAM y agregan el nombre de la cuenta de servicio de Kubernetes a la política de confianza correspondiente al rol de IAM.
CLUSTER_NAME=my-cluster
REGION=region-code
ROLE_NAME=AmazonEKS_S3_CSI_DriverRole
POLICY_ARN=AmazonEKS_S3_CSI_DriverRole_ARN
eksctl create iamserviceaccount \
--name s3-csi-driver-sa \
--namespace kube-system \
--cluster $CLUSTER_NAME \
--attach-policy-arn $POLICY_ARN \
--approve \
--role-name $ROLE_NAME \
--region $REGION \
--role-only
AWS Management Console
-
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación izquierdo, elija Roles.
-
En la página Roles, elija Crear rol.
-
En la página Seleccionar entidad de confianza, haga lo siguiente:
-
En la sección Tipo de entidad de confianza, elija Identidad web.
-
Para Identity provider (Proveedor de identidades), elija OpenID Connect provider URL (URL del proveedor de OpenID Connect) para el clúster, como se muestra en Overview (Resumen) en Amazon EKS.
Si no se muestra ninguna URL, consulte la sección Requisitos previos.
-
En Audiencia, elija
sts.amazonaws.com
. -
Elija Siguiente.
-
-
En la página Agregar permisos, haga lo siguiente:
-
En el cuadro Filtrar políticas, ingrese AmazonS3CSIDriverPolicy.
nota
Esta política se creó en la sección anterior.
-
Marque la casilla situada a la izquierda del resultado de
AmazonS3CSIDriverPolicy
que obtuvo en la búsqueda. -
Elija Siguiente.
-
-
En la página Nombrar, revisar y crear, haga lo siguiente:
-
En Nombre del rol, ingrese un nombre único para su rol, por ejemplo, AmazonEKS_S3_CSI_DriverRole.
-
En Agregar etiquetas (Opcional), de manera opcional, agregue metadatos al rol asociando etiquetas como pares de clave-valor. Para obtener más información sobre el uso de etiquetas en IAM, consulte Etiquetado de recursos de IAM en la Guía de usuario de IAM.
-
Elija Creación de rol.
-
-
Una vez creado el rol, seleccione el rol en la consola para abrirlo y editarlo.
-
Elija la pestaña Relaciones de confianza y, a continuación, Editar política de confianza.
-
Busque la línea que se parezca a la siguiente:
"oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"
Agregue una coma al final de la línea anterior y, luego, agregue la siguiente línea después de esta. Reemplace
region-code
por la región de AWS en la que se encuentra el clúster. ReemplaceEXAMPLED539D4633E53DE1B71EXAMPLE
con el ID de proveedor de OIDC de su clúster."oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa"
-
Asegúrese de que el operador
Condition
esté configurado en"StringEquals"
. -
Elija Actualizar política para terminar.
AWS CLI
-
Vea la URL del proveedor de OIDC para su clúster. Reemplace
my-cluster
por el nombre de su clúster. Si la salida del comando esNone
, revise los Requisitos previos.aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text
Un ejemplo de salida sería el siguiente.
https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
-
Cree el rol de IAM otorgándole a la cuenta de servicio de Kubernetes la acción
AssumeRoleWithWebIdentity
.-
Copie los siguientes contenidos en un archivo denominado
aws-s3-csi-driver-trust-policy.json
. Reemplace111122223333
por el ID de su cuenta. ReemplaceEXAMPLED539D4633E53DE1B71EXAMPLE
yregion-code
por los valores que se devolvieron en el paso anterior.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:s3-csi-driver-sa", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com" } } } ] }
-
Creación del rol. Puede cambiar el nombre de
AmazonEKS_S3_CSI_DriverRole
, pero si lo hace, asegúrese de cambiarlo también en los pasos posteriores.aws iam create-role \ --role-name AmazonEKS_S3_CSI_DriverRole \ --assume-role-policy-document file://"aws-s3-csi-driver-trust-policy.json"
-
-
Cree un rol de IAM y adjunte la política de IAM creada previamente al rol con el siguiente comando.
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonS3CSIDriverPolicy \ --role-name AmazonEKS_S3_CSI_DriverRole
nota
La política de IAM
AmazonS3CSIDriverPolicy
se creó en la sección anterior. -
Omita este paso si va a instalar el controlador como complemento de Amazon EKS. Para las instalaciones autoadministradas del controlador, cree cuentas de servicio de Kubernetes que estén anotadas con el ARN del rol de IAM que creó.
-
Guarde los siguientes contenidos en un archivo llamado
mountpoint-s3-service-account.yaml
. Reemplace111122223333
por el ID de su cuenta.--- apiVersion: v1 kind: ServiceAccount metadata: labels: app.kubernetes.io/name: aws-mountpoint-s3-csi-driver name: mountpoint-s3-csi-controller-sa namespace: kube-system annotations: eks.amazonaws.com/role-arn: arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
-
Cree la cuenta de servicio de Kubernetes en el clúster. La cuenta de servicio de Kubernetes (
mountpoint-s3-csi-controller-sa
) está anotada con el rol de IAM que creó con el nombreAmazonEKS_S3_CSI_DriverRole
.kubectl apply -f mountpoint-s3-service-account.yaml
nota
Cuando implementa el complemento en este procedimiento, crea una cuenta de servicio que se llama
s3-csi-driver-sa
y se configura para utilizarla.
-
Instalación del controlador de CSI de Mountpoint para Amazon S3
Puede instalar el controlador de CSI de Mountpoint para Amazon S3 a través del complemento de Amazon EKS. Puede usar las herramientas a continuación para agregar el complemento a su clúster:
Como alternativa, puede instalar el controlador de CSI de Mountpoint para Amazon S3 como instalación autoadministrada. Para obtener instrucciones sobre cómo efectuar una instalación autoadministrada, consulte Installation
A partir de la versión v1.8.0
, es posible configurar taints para tolerar los pods del controlador de CSI. Para ello, especifique un conjunto personalizado de taints para tolerar con node.tolerations
o tolere todas las taints con node.tolerateAllTaints
. Para obtener más información, consulte Taints y toleraciones
eksctl
Agregar el complemento CSI de Amazon S3 con eksctl
Ejecute el siguiente comando de la . Reemplace my-cluster
por el nombre del clúster, 111122223333
por el ID de cuenta y AmazonEKS_S3_CSI_DriverRole
por el nombre del rol de IAM creado anteriormente.
eksctl create addon --name aws-mountpoint-s3-csi-driver --cluster my-cluster \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole --force
Si quita la opción --force
y cualquiera de las configuraciones del complemento de Amazon EKS entran en conflicto con la configuración existente, se produce un error al actualizar el complemento de Amazon EKS y recibe un mensaje de error para ayudarlo a resolver el conflicto. Antes de especificar esta opción, asegúrese de que el complemento de Amazon EKS no administra la configuración que necesita administrar, ya que dicha configuración se sobrescribe con esta opción. Para obtener más información acerca de otras opciones para este ajuste, consulte Addonseksctl
. Para obtener más información sobre el campo de administración de Kubernetes de Amazon EKS, consulte Determinación de los campos que se pueden personalizar para los complementos de Amazon EKS.
Puede personalizar eksctl
mediante archivos de configuración. Para obtener más información, consulte Trabajar con valores de configuracióneksctl
. En el siguiente ejemplo se demuestra cómo tolerar todas las taints.
# config.yaml
...
addons:
- name: aws-mountpoint-s3-csi-driver
serviceAccountRoleARN: arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
configurationValues: |-
node:
tolerateAllTaints: true
AWS Management Console
-
Abra la consola de Amazon EKS
. -
En el panel de navegación izquierdo, elija Clusters (Clústeres).
-
Seleccione el nombre del clúster para el cual desea configurar el complemento de CSI de Mountpoint para Amazon S3.
-
Elija la pestaña Complementos.
-
Escoja Obtener más complementos.
-
En la página Seleccionar complementos, haga lo siguiente:
-
En la sección Complementos de Amazon EKS, seleccione la casilla de verificación Controlador de CSI de Mountpoint para Amazon S3.
-
Elija Siguiente.
-
-
En la página Configurar las opciones de complementos seleccionados, haga lo siguiente:
-
Seleccione la Versión que desea utilizar.
-
En Seleccionar rol de IAM, seleccione el nombre de un rol de IAM al que le haya adjuntado la política de IAM del controlador de CSI de Mountpoint para Amazon S3.
-
(Opcional) Actualice el método de resolución de conflictos después de ampliar los ajustes de configuración opcionales. Si selecciona Anular, es posible que una o varias configuraciones del complemento existente se sobrescriban con la configuración del complemento de Amazon EKS. Si no habilita esta opción y hay un conflicto con la configuración existente, la operación falla. Puede utilizar el mensaje de error resultante para solucionar el conflicto. Antes de seleccionar esta opción, asegúrese de que el complemento de Amazon EKS no administra las configuraciones que se necesitan autoadministrar.
-
(Opcional) Configure las tolerancias en el campo Valores de configuración después de ampliar los ajustes de configuración opcionales.
-
Elija Siguiente.
-
-
En la página Revisar y añadir, elija Crear. Una vez finalizada la instalación del complemento, verá el complemento instalado.
AWS CLI
Adición del complemento de CSI de Mountpoint para Amazon S3 mediante la AWS CLI
Ejecute el siguiente comando de la . Reemplace my-cluster
por el nombre del clúster, 111122223333
por el ID de cuenta y AmazonEKS_S3_CSI_DriverRole
por el nombre del rol creado anteriormente.
aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
Puede personalizar el comando con la marca --configuration-values
. El siguiente ejemplo alternativo muestra cómo tolerar todas las taints.
aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \
--service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole \
--configuration-values '{"node":{"tolerateAllTaints":true}}'
Configuración de Mountpoint para Amazon S3
En la mayoría de los casos, puede configurar Mountpoint para Amazon S3 solo con un nombre de bucket. Para obtener instrucciones sobre la configuración de Mountpoint para Amazon S3, consulte Configuring Mountpoint for Amazon S3
Implementación de una aplicación de muestra
Puede implementar el aprovisionamiento estático en el controlador de un bucket de Amazon S3 existente. Para obtener más información, consulte Static provisioning
Eliminación del controlador de CSI de Mountpoint para Amazon S3
Tiene dos opciones al eliminar un complemento de Amazon EKS.
-
Conservar el software del complemento en el clúster: esta opción elimina la administración de Amazon EKS de cualquier configuración. También elimina la capacidad de Amazon EKS de notificarle las actualizaciones y actualizar de forma automática el complemento de Amazon EKS después de iniciar una actualización. Sin embargo, conserva el software del complemento en el clúster. Esta opción hace que la instalación sea autoadministrada, en lugar de un complemento de Amazon EKS. Con esta opción, no hay tiempo de inactividad para el complemento. Los comandos de este procedimiento utilizan esta opción.
-
Eliminar por completo el software del complemento del clúster: recomendamos que elimine el complemento de Amazon EKS del clúster solo si no hay recursos en el clúster que dependan de él. Para hacer esta opción, elimine
--preserve
del comando que utiliza en este procedimiento.
Si el complemento tiene una cuenta de IAM asociada, esta no se elimina.
Puede usar las herramientas a continuación para eliminar el complemento Amazon S3 CSI.
eksctl
Eliminar el complemento Amazon S3 CSI con eksctl
Reemplace my-cluster
por el nombre de su clúster y ejecute el siguiente comando.
eksctl delete addon --cluster my-cluster --name aws-mountpoint-s3-csi-driver --preserve
AWS Management Console
-
Abra la consola de Amazon EKS
. -
En el panel de navegación izquierdo, elija Clusters (Clústeres).
-
Elija el nombre del clúster para el que desea eliminar el complemento CSI de Amazon EBS.
-
Elija la pestaña Complementos.
-
Elija Controlador de CSI de Mountpoint para Amazon S3.
-
Elija Eliminar.
-
En el cuadro de diálogo de confirmación Eliminar: aws-mountpoint-s3-csi-driver, haga lo siguiente:
-
Si desea que Amazon EKS deje de administrar la configuración del complemento, seleccione Conservar en clúster. Haga esto si desea retener el software del complemento en el clúster. Esto es para que pueda administrar todas las configuraciones del complemento por su cuenta.
-
Escriba
aws-mountpoint-s3-csi-driver
. -
Seleccione Eliminar.
-
AWS CLI
Eliminar el complemento Amazon S3 CSI con la AWS CLI
Reemplace my-cluster
por el nombre de su clúster y ejecute el siguiente comando.
aws eks delete-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver --preserve