¿Por qué no me puedo conectar a mi clúster de Amazon EKS?

Última actualización: 23-06-2021

He creado un clúster de Amazon Elastic Kubernetes Service (Amazon EKS), pero no puedo conectarme a mi clúster.

Descripción corta

Una vez que cree su clúster de Amazon EKS, debe configurar su archivo kubeconfig con AWS Command Line Interface (AWS CLI). Esta configuración le permite conectarse a su clúster mediante la línea de comandos de kubectl.

La siguiente resolución le muestra cómo crear un archivo kubeconfig para su clúster con el comando update-kubeconfig de AWS CLI. Para actualizar de manera manual su archivo kubeconfig sin utilizar AWS CLI, consulte Crear un kubeconfig para Amazon EKS.

Nota: Si recibe errores al ejecutar comandos de AWS CLI, asegúrese de que está utilizando la versión más reciente de AWS CLI.

Resolución

1.    Verifique que la versión 1.16.308 o superior de AWS CLI está instalado en su sistema:

$ aws --version

Importante: Debe contar con la versión 2.7.9 o superior de Python instalada en su sistema. De lo contrario, recibirá un error.

Consejo: Administradores de paquetes como yum, apt-get o homebrew para macOS se utilizan con frecuencia para instalar AWS CLI.

2.    Compruebe la identidad actual para verificar que está utilizando las credenciales correctas con permisos para el clúster de Amazon EKS:

aws sts get-caller-identity

Nota: El usuario o rol de una entidad de AWS Identity and Access Management (IAM) que crea un clúster de Amazon recibe de manera automática permisos system:master cuando se crea un clúster. Estos permisos se conceden en la configuración RBAC del clúster en el plano de control. Los usuarios o roles de IAM también pueden conseguir acceso a un clúster de Amazon EKS desde aws-auth ConfigMap. De manera predeterminada, AWS IAM Authenticator para Kubernetes utiliza AWS CLI configurada o la identidad del SDK de AWS.

3.    Cree o actualice el archivo kubeconfig para su clúster:

aws eks --region region update-kubeconfig --name cluster_name

Nota: Sustituya region por su región de AWS. Sustituya cluster_name por el nombre de su clúster.

De manera predeterminada, el archivo de configuración se crea en la ruta de kubeconfig ($HOME/.kube/config) en su directorio principal o se combina con una kubeconfig existente en esa ubicación. En el caso de Windows, el archivo se encuentra en %USERPROFILE%\.kube\config.

También puede especificar otra ruta si configura la variable de entorno de KUBECONFIG (desde el sitio web de Kubernetes) o con la siguiente opción de -- kubeconfig:

$ kubectl get pods --kubeconfig ./.kube/config

Nota: Para la autenticación cuando ejecuta comandos kubectl, puede especificar un nombre de recurso de Amazon (ARN) de un rol de IAM con la opción --role-arn. De lo contrario, se utilizará la entidad de IAM en su cadena de credenciales predeterminada de AWS CLI o del SDK de AWS. Para obtener más información, consulte update-kubeconfig o complete el paso 6 en la sección “Crear kubeconfig de forma manual” de Crear kubeconfig para Amazon EKS.

4.    Pruebe su configuración:

$ kubectl get svc

Salida de ejemplo:

NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
svc/kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   1m

Nota: Si recibe otros errores de autorización o tipo de recursos, consulte Acceso no autorizado o denegado (kubectl).