

 **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.

# Conexión de kubectl a un clúster de EKS mediante la creación de un archivo kubeconfig
<a name="create-kubeconfig"></a>

**sugerencia**  
 [Regístrese](https://aws-experience.com/emea/smb/events/series/get-hands-on-with-amazon-eks?trk=4a9b4147-2490-4c63-bc9f-f8a84b122c8c&sc_channel=el) en los próximos talleres de Amazon EKS.

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 [Organizing Cluster Access Using kubeconfig Files](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-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 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](getting-started.md).
+ 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.29`, puede usar la versión `1.28`, `1.29` o `1.30` de `kubectl` con él. Para instalar o actualizar `kubectl`, consulte [Configuración de `kubectl` y `eksctl`](install-kubectl.md).
+ La versión `2.12.3` o posterior, o bien, la versión `1.27.160` o posterior de la AWS interfaz de la línea de comandos (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, 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 [Instalación](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) y [Configuración rápida con aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) en la *Guía del usuario de la interfaz de la línea de comandos de AWS*. 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 CLI de AWS en su directorio principal](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software) 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](security-iam-id-based-policy-examples.md). Si utiliza una identidad de su propio proveedor de OpenID Connect para acceder al clúster, consulte [Using kubectl](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#using-kubectl) en la documentación de Kubernetes para crear o actualizar el archivo de `kube config`.

## Crear el archivo `kubeconfig` de forma automática
<a name="create-kubeconfig-automatically"></a>
+ La versión `2.12.3` o posterior, o bien, la versión `1.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, utilice `aws --version | cut -d / -f2 | cut -d ' ' -f1`. Los administradores de paquetes, 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 [Instalación](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) y [Configuración rápida con aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) en la *Guía del usuario de la interfaz de la línea de comandos de AWS*. 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 CLI de AWS en su directorio principal](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software) 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](security-iam-id-based-policy-examples.md).

  1. Creación o actualización de un archivo de `kubeconfig` para el clúster. Reemplace *region-code* por la región de AWS donde creó el clúster y *my-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 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) 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 comando `aws sts get-caller-identity`.

     Para ver todas las opciones disponibles, ejecute el comando `aws eks update-kubeconfig help` o consulte [update-kubeconfig](https://docs.aws.amazon.com/cli/latest/reference/eks/update-kubeconfig.html) en la *Referencia de los comandos de la CLI de AWS*.

  1. 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`)](troubleshooting.md#unauthorized) en el tema de solución de problemas.