Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
AWSSupport-TroubleshootEbsCsiDriversForEks
Descripción
Este AWSSupport-TroubleshootEbsCsiDriversForEks manual ayuda a solucionar problemas relacionados con los montajes de volúmenes de Amazon Elastic Block Store en Amazon Elastic Kubernetes Service (Amazon EKS) y con los controladores de la interfaz de almacenamiento de contenedores (CSI) de Amazon EBS
importante
Actualmente, el controlador CSI de Amazon EBS en el que se ejecuta no es compatible. AWS Fargate
¿Cómo funciona?
El runbook AWSSupport-TroubleshootEbsCsiDriversForEks lleva a cabo los siguientes pasos de alto nivel:
-
Verifica si el clúster de Amazon EKS de destino existe y está en estado activo.
-
Implementa los recursos de autenticación necesarios para realizar llamadas a la API de Kubernetes en función de si el complemento es de Amazon o autogestionado. EKS-managed
-
Realiza comprobaciones y diagnósticos de estado del controlador CSI de Amazon EBS.
-
Realiza comprobaciones de permisos de IAM en las funciones de los nodos y las funciones de las cuentas de servicio.
-
Diagnostica los problemas persistentes de creación de volúmenes en el pod de aplicaciones especificado.
-
Comprueba la programación de un nodo a otro y examina los eventos del pod.
-
Recopila los registros relevantes de Kubernetes y aplicaciones y los carga en el bucket de Amazon S3 especificado.
-
Realiza comprobaciones del estado de los nodos y verifica la conectividad con los puntos de enlace de Amazon EC2.
-
Revisa el volumen persistente, los archivos adjuntos de los dispositivos y el estado de montaje.
-
Limpia la infraestructura de autenticación creada durante la resolución de problemas.
-
Genera un informe completo de solución de problemas que combina todos los resultados del diagnóstico.
nota
-
El modo de autenticación del clúster de Amazon EKS debe configurarse en
APIoAPI_AND_CONFIG_MAP. Se recomienda utilizar la entrada Amazon EKS Access. El manual de instrucciones requiere permisos de control de Role-based acceso (RBAC) de Kubernetes para realizar las llamadas a la API necesarias. -
Si no especificas una función de IAM para la función de Lambda (
LambdaRoleArnparámetro), la automatización crea una función con un nombre en tu cuenta.Automation-K8sProxy-Role-<ExecutionId>Este rol incluye las políticasAWSLambdaBasicExecutionRoleadministradas y.AWSLambdaVPCAccessExecutionRole -
Algunos pasos de diagnóstico requieren que los nodos de trabajo de Amazon EKS sean instancias administradas por Systems Manager. Si los nodos no son instancias administradas por Systems Manager, se omiten los pasos que requieren el acceso a Systems Manager, pero se continúan realizando otras comprobaciones.
-
La automatización incluye un paso de limpieza que elimina los recursos de la infraestructura de autenticación. Este paso de limpieza se ejecuta incluso cuando los pasos anteriores fallan, lo que ayuda a evitar que los recursos huérfanos queden en la cuenta. AWS
Ejecuta esta automatización (consola)
Tipo de documento
Automatización
Propietario
Amazon
Plataformas
/
Permisos de IAM necesarios
El parámetro AutomationAssumeRole requiere las siguientes acciones para utilizar el manual de procedimientos correctamente.
-
ec2:DescribeIamInstanceProfileAssociations -
ec2:DescribeInstanceStatus -
ec2:GetEbsEncryptionByDefault -
eks:DescribeAddon -
eks:DescribeAddonVersions -
eks:DescribeCluster -
iam:GetInstanceProfile -
iam:GetOpenIDConnectProvider -
iam:GetRole -
iam:ListOpenIDConnectProviders -
iam:SimulatePrincipalPolicy -
s3:GetBucketLocation -
s3:GetBucketPolicyStatus -
s3:GetBucketPublicAccessBlock -
s3:GetBucketVersioning -
s3:ListBucket -
s3:ListBucketVersions -
ssm:DescribeInstanceInformation -
ssm:GetAutomationExecution -
ssm:GetDocument -
ssm:ListCommandInvocations -
ssm:ListCommands -
ssm:SendCommand -
ssm:StartAutomationExecution
Instrucciones
Siga estos pasos para configurar la automatización:
-
Crea una función de automatización de SSM
TroubleshootEbsCsiDriversForEks-SSM-Roleen tu cuenta. Verifique que la relación de confianza contiene la siguiente política. -
Adjunte la política que aparece a continuación a la función de IAM para conceder los permisos necesarios para realizar las acciones especificadas en los recursos especificados.
-
Si tiene previsto subir los registros de ejecución y recursos a un bucket de Amazon S3 en la misma AWS región, sustitúyalos por
arn:{partition}:s3:::BUCKET_NAME/*losOptionalRestrictPutObjectssuyos.-
El bucket de Amazon S3 debe apuntar al bucket de Amazon S3 correcto si lo selecciona
S3BucketNameen la ejecución de SSM. -
Este permiso es opcional si no lo especifica
S3BucketName -
El bucket de Amazon S3 debe ser privado y estar en la misma AWS región en la que se ejecuta la automatización de SSM.
-
-
-
Otorgue los permisos necesarios para el RBAC (control de Role-Based acceso) del clúster de Amazon EKS. El enfoque recomendado es crear una entrada de acceso en su clúster de Amazon EKS.
En la consola de Amazon EKS, navegue hasta su clúster. Para las entradas de acceso a Amazon EKS, compruebe que su configuración de acceso esté establecida en
API_AND_CONFIG_MAPoAPI. Para ver los pasos a seguir para configurar el modo de autenticación para las entradas de acceso, consulte Configurar las entradas de acceso.Elija Crear entrada de acceso.
-
Para el ARN principal de IAM, seleccione el rol de IAM que creó para la automatización de SSM en el paso anterior.
-
En Tipo, seleccione
Standard.
-
-
Agregue una política de acceso:
-
En Alcance de acceso, seleccione
Cluster. -
En Nombre de la política, seleccione
AmazonEKSAdminViewPolicy.
Elija Add Policy (Agregar política).
Si no utilizas entradas de acceso para administrar los permisos de la API de Kubernetes, debes actualizar el enlace de rol
aws-authConfigMap y crear un enlace de rol entre tu usuario o rol de IAM. Asegúrate de que tu entidad de IAM tenga los siguientes permisos de solo lectura de la API de Kubernetes:-
GET
/apis/apps/v1/namespaces/{namespace}/deployments/{name} -
GET
/apis/apps/v1/namespaces/{namespace}/replicasets/{name} -
GET
/apis/apps/v1/namespaces/{namespace}/daemonsets/{name} -
GET
/api/v1/nodes/{name} -
GET
/api/v1/namespaces/{namespace}/serviceaccounts/{name} -
GET
/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name} -
GET
/api/v1/persistentvolumes/{name} -
GET
/apis/storage.k8s.io/v1/storageclasses/{name} -
GET
/api/v1/namespaces/{namespace}/pods/{name} -
GET
/api/v1/namespaces/{namespace}/pods -
GET
/api/v1/namespaces/{namespace}/pods/{name}/log -
GET
/api/v1/events
-
-
Ejecuta la automatización (consola) AWSSupport-TroubleshootEbsCsiDriversForEks
-
Elija Execute automation (Ejecutar automatización).
-
Para los parámetros de entrada, introduzca lo siguiente:
-
AutomationAssumeRole (Opcional):
-
Descripción: (opcional) El nombre de recurso de Amazon (ARN) del rol AWS Identity and Access Management (IAM) que permite a SSM Automation realizar las acciones en tu nombre. El rol debe añadirse a la entrada de acceso al clúster de Amazon EKS o al permiso de RBAC para permitir las llamadas a la API de Kubernetes.
-
Tipo:
AWS::IAM::Role::Arn -
Ejemplo:
TroubleshootEbsCsiDriversForEks-SSM-Role
-
-
EksClusterName:
-
Descripción: el nombre del clúster de Amazon Elastic Kubernetes Service (Amazon EKS) de destino.
-
Tipo:
String
-
-
ApplicationPodName:
-
Descripción: El nombre del pod de la aplicación de Kubernetes que tiene problemas con el controlador CSI de Amazon EBS.
-
Tipo:
String
-
-
ApplicationNamespace:
-
Descripción: El espacio de nombres de Kubernetes del pod de la aplicación tiene problemas con el controlador CSI de Amazon EBS.
-
Tipo:
String
-
-
EbsCsiControllerDeploymentName(Opcional):
-
Descripción: (opcional) El nombre de implementación del pod de controladores CSI de Amazon EBS.
-
Tipo:
String -
Valor predeterminado:
ebs-csi-controller
-
-
EbsCsiControllerNamespace(Opcional):
-
Descripción: (opcional) El espacio de nombres de Kubernetes para el pod de controladores CSI de Amazon EBS.
-
Tipo:
String -
Valor predeterminado:
kube-system
-
-
S3BucketName (Opcional):
-
Descripción: (opcional) El nombre del bucket de Amazon S3 de destino donde se cargarán los registros de solución de problemas.
-
Tipo:
AWS::S3::Bucket::Name
-
-
LambdaRoleArn (Opcional):
-
Descripción: (Opcional) El ARN del rol de IAM que permite a la AWS Lambda función acceder a los AWS servicios y recursos necesarios.
-
Tipo:
AWS::IAM::Role::Arn
-
Seleccione Ejecutar.
-
-
Una vez finalizada, revise la sección Resultados para ver los resultados detallados de la ejecución.
Referencias
Automatización de Systems Manager
Para obtener más información sobre el controlador CSI de Amazon EBS, consulte el controlador CSI de Amazon EBS.