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
Amazon EKS usa el comando aws eks get-token
con kubectl
para la autenticación del clúster. De forma predeterminada, la CLI de AWS utiliza las mismas credenciales que se devuelven con el siguiente comando:
aws sts get-caller-identity
-
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 es1.29
, puede usar la versión1.28
,1.29
o1.30
dekubectl
con él. Para instalar o actualizarkubectl
, consulte Configure kubectl y eksctl. -
La versión
2.12.3
o posterior, o bien, la versión1.27.160
o posterior de la Interfaz de la línea de comandos de AWS (AWS CLI) instalada y configurada en su dispositivo o AWS CloudShell. Para comprobar su versión actual, utiliceaws --version | cut -d / -f2 | cut -d ' ' -f1
. Los administradores de paquetes tales comoyum
,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 Instalación y Configuración rápida con aws configure en la Guía del usuario de la Interfaz de la línea de comandos de AWS. La versión de la CLI de AWS 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 CLI de AWS en su directorio principal 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 kubectlen la documentación de Kubernetes para crear o actualizar el archivo de kube config
.
Crear el archivo kubeconfig
de forma automática
-
La versión
2.12.3
o posterior, o bien, la versión1.27.160
o posterior de la Interfaz de la línea de comandos de AWS (AWS CLI) instalada y configurada en su dispositivo o AWS CloudShell. Para comprobar su versión actual, utiliceaws --version | cut -d / -f2 | cut -d ' ' -f1
. Los administradores de paquetes tales comoyum
,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 Instalación y Configuración rápida con aws configure en la Guía del usuario de la Interfaz de la línea de comandos de AWS. La versión de la CLI de AWS 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 CLI de AWS en su directorio principal 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.-
Cree o actualice un archivo de
kubeconfig
para el clúster. Reemplaceregion-code
por la región de AWS donde creó el clúster ymy-cluster
por el nombre de su 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 archivoconfig
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 comandoskubectl
. De lo contrario, se utilizará la entidad principal de IAM de la CLI predeterminada o la cadena de credencial del SDK de AWS. Puede ver su identidad de la CLI o el SDK predeterminados de AWS ejecutando el comandoaws 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 CLI de AWS. -
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.
-