Conexión de kubectl a un clúster de EKS mediante la creación de un archivo kubeconfig - 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.

Conexión de kubectl a un clúster de EKS mediante la creación de un archivo kubeconfig

En este tema, creará un archivo kubeconfig para su clúster (o actualizará uno existente).

La herramienta de línea de comandos kubectl usa la información de configuración en los archivos kubeconfig para comunicarse con el servidor de API de un clúster. Para obtener más información, consulte Organización del acceso al clúster mediante archivos kubeconfig en la documentación de Kubernetes.

Amazon EKS usa el comando aws eks get-token con kubectl para la autenticación del clúster. De forma predeterminada, la AWS CLI utiliza las mismas credenciales que se devuelven con el siguiente comando:

aws sts get-caller-identity
Requisitos previos
  • Un clúster existente de Amazon EKS. Para implementar uno, consulte Introducción a Amazon EKS.

  • 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 es 1.30, puede usar la versión 1.29, 1.30 o 1.31 de kubectl con él. Para instalar o actualizar kubectl, consulte Configuración de kubectl y eksctl.

  • La versión 2.12.3 o posterior, o bien, la versión 1.27.160 o posterior de la AWS Command Line Interface (AWS CLI) instalada y configurada en su dispositivo o AWS CloudShell. Para comprobar su versión actual, utilice aws --version | cut -d / -f2 | cut -d ' ' -f1. Los administradores de paquetes tales como yum, apt-get o Homebrew para macOS suelen estar atrasados varias versiones respecto de la versión de la AWS CLI más reciente. Para instalar la versión más reciente, consulte Instalar, actualizar y desinstalar la AWS CLI y Configuración rápida con aws configure en la Guía del usuario de AWS Command Line Interface. La versión de AWS CLI instalada en AWS CloudShell también puede estar atrasada varias versiones respecto de la versión más reciente. Para actualizarla, consulte Instalación de la AWS CLI en el directorio de inicio en la Guía del usuario de AWS CloudShell.

  • Un rol o usuario de IAM con permisos para utilizar la acción de API eks:DescribeCluster en el clúster que especifique. Para obtener más información, consulte Ejemplos de políticas de Amazon EKS basadas en identidades. Si utiliza una identidad de su propio proveedor de OpenID Connect para acceder al clúster, consulte Uso de kubectl en la documentación de Kubernetes para crear o actualizar el archivo de kube config.

Crear el archivo kubeconfig de forma automática

Requisitos previos
  • La versión 2.12.3 o posterior, o bien, la versión 1.27.160 o posterior de la AWS Command Line Interface (AWS CLI) instalada y configurada en su dispositivo o AWS CloudShell. Para comprobar su versión actual, utilice aws --version | cut -d / -f2 | cut -d ' ' -f1. Los administradores de paquetes tales como yum, apt-get o Homebrew para macOS suelen estar atrasados varias versiones respecto de la versión de la AWS CLI más reciente. Para instalar la versión más reciente, consulte Instalar, actualizar y desinstalar la AWS CLI y Configuración rápida con aws configure en la Guía del usuario de AWS Command Line Interface. La versión de AWS CLI instalada en AWS CloudShell también puede estar atrasada varias versiones respecto de la versión más reciente. Para actualizarla, consulte Instalación de la AWS CLI en el directorio de inicio en la Guía del usuario de AWS CloudShell.

  • Permiso para usar la acción de API eks:DescribeCluster en el clúster que especifique. Para obtener más información, consulte Ejemplos de políticas de Amazon EKS basadas en identidades.

Para crear el archivo kubeconfig con la AWS CLI
  1. Cree o actualice un archivo de kubeconfig para el clúster. Reemplace region-code con la Región de AWS en la que se encuentra su clúster y reemplace my-cluster con el nombre del clúster.

    aws eks update-kubeconfig --region region-code --name my-cluster

    De forma predeterminada, el archivo de configuración resultante se crea en la ruta de kubeconfig predeterminada (.kube) en el directorio de inicio o en combinación con un archivo config existente en dicha ubicación. Puede especificar otra ruta con la opción --kubeconfig.

    Puede especificar un ARN de rol de IAM con la opción --role-arn para utilizar en la autenticación al emitir comandos kubectl. De lo contrario, se utilizará la entidad principal de IAM de la AWS CLI predeterminada o las credenciales del SDK. Puede ver su identidad de AWS CLI o SDK predeterminada ejecutando el comando aws sts get-caller-identity.

    Para ver todas las opciones disponibles, ejecute el comando aws eks update-kubeconfig help o consulte update-kubeconfig en la Referencia de los comandos de la AWS CLI.

  2. Pruebe la configuración.

    kubectl get svc

    Un ejemplo de salida sería el siguiente.

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

    Si recibe cualquier error de tipo de recurso o autorización, consulte Acceso denegado o no autorizado (kubectl) en el tema de solución de problemas.