Creación de un clúster de Amazon EKS - Amazon EKS

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.

Creación de un clúster de Amazon EKS

Este tema le guía en el proceso de creación de un clúster de Amazon EKS. Si es la primera vez que crea un clúster de Amazon EKS, le recomendamos que siga una de nuestrasIntroducción a Amazon EKSEn su lugar, guías. Proporcionan instrucciones paso a paso completas para crear un clúster de Amazon EKS con nodos.

importante

Cuando se crea un clúster de Amazon EKS, la entidad de IAM (el usuario o el rol) de que crea el clúster se añade a la tabla de autorización de RBAC de Kubernetes como administrador (consystem:masterspermisos). Inicialmente, solo ese usuario de IAM de puede realizar llamadas a la API de Kubernetes conkubectl. Para obtener más información, consulte Administración de usuarios o roles de IAM para su clúster. Si usa la consola para crear el clúster, debe asegurarse de que las mismas credenciales de usuario de IAM se encuentren en elAWSCadena de credenciales SDK cuando se ejecutakubectlen el clúster.

Puede crear un clúster de coneksctl, elAWS Management Console, o elAWS CLI.

eksctl

Prerequisite

eksctlTiene instalada la versión 0.54.0 o posterior. Para instalarlo o actualizarlo, consulteLa utilidad de línea de comandos eksctl.

Cree un clúster con la versión más reciente de Kubernetes de de Amazon EKS en su región predeterminada. Reemplace la<example-values>(incluyendo<>) con sus propios valores. Puede reemplazar<1.20>CualquierVersión admitida.

eksctl create cluster \ --name <my-cluster> \ --version <1.20> \ --with-oidc \ --without-nodegroup
sugerencia

Para ver la mayoría de las opciones que se pueden especificar al crear un clúster con eksctl, utilice el comando eksctl create cluster --help. Para ver todas las opciones, puede usar un archivo de configuración. Para obtener más información, consulte Uso de archivos de configuración y el esquema de archivos de configuración en la documentación de eksctl. Puede encontrar ejemplos de archivos de configuración en GitHub.

importante

Si planea implementar nodos autogestionados enAWS Outposts,AWS Wavelength, o bienAWSLocal Zones después de implementar el clúster, debe tener una VPC existente que cumpla con los requisitos de Amazon EKS y utilizar la--vpc-private-subnetscon el comando anterior. Los ID de subred que especifique no pueden ser losAWS Outposts,AWS Wavelength, o bienAWSSubredes de Local Zones. Para obtener más información acerca del uso de una VPC, consulteUsar VPC existente: otra configuración personalizadaen laeksctl.

aviso

Si crea un clúster utilizando un archivo de configuración con la opción secretsEncryption, que requiere una clave AWS Key Management Service existente, y la clave que utiliza se elimina alguna vez, entonces no hay ruta de recuperación para el clúster. Si habilita el cifrado de sobres, los secretos de Kubernetes se cifran utilizando la clave maestra del cliente (CMK) que seleccione. La CMK debe ser simétrica, creada en la misma región que el clúster, y si la CMK se creó en una cuenta diferente, el usuario debe tener acceso a la CMK. Para obtener más información, consulte Permitir que los usuarios de otras cuentas utilicen un CMK en la Guía para desarrolladores de AWS Key Management Service. El cifrado de secretos de Kubernetes con un CMK AWS KMS requiere Kubernetes versión 1.13 o posterior.

De forma predeterminada, el comando create-key crea una clave simétrica con una política de clave que da acceso al administrador del usuario raíz de la cuenta en acciones y recursos de AWS KMS. Para obtener más información, consulte Creación de claves. Si desea ampliar los permisos, asegúrese de que las acciones kms:DescribeKey y kms:CreateGrant estén permitidas en la política de claves para la entidad principal que llamará a la API create-cluster. Amazon EKS no admite la condición de política de claveskms:GrantIsForAWSResource. La creación de un clúster no funcionará si esta acción se encuentra en la declaración de política clave.

El aprovisionamiento de clústeres tarda varios minutos. Durante la creación del clúster, verá varias líneas de salida. La última línea de salida es similar a la siguiente línea de ejemplo.

[✓] EKS cluster "<my-cluster>" in "<region-code>" region is ready

Una vez creado el clúster 1.18 o posterior, puede migrar el CNI de Amazon VPC, CoreDNS ykube-proxyque se implementaron con su clúster en complementos de Amazon EKS. Para obtener más información, consulte Complementos de Amazon EKS.

AWS Management Console

Prerequisites

Para crear el clúster con la consola

  1. Abra la consola de Amazon EKS enhttps://console.aws.amazon.com/eks/home#/clusters.

  2. Elija Create cluster.

  3. En la página Configure cluster (Configurar clúster) rellene los siguientes campos:

    • Nombre— Un nombre único para el clúster.

    • Versión de Kubernetes— Versión de Kubernetes que debe usarse para el clúster.

    • Rol de servicio deElija el rol de clúster de Amazon EKS para permitir que el plano de control de Kubernetes administrenAWSen su nombre. Para obtener más información, consulte Función de IAM del clúster de Amazon EKS.

    • Cifrado de secretos— (Opcional) Elija habilitar el cifrado de sobres de los secretos de Kubernetes con laAWS Key Management Service(AWS KMS). El CMK debe ser simétrico, creado en la misma región que el clúster, y si el CMK se creó en una cuenta diferente, el usuario debe tener acceso al CMK. Para obtener más información, consulte Permitir que los usuarios de otras cuentas utilicen un CMK en la Guía para desarrolladores de AWS Key Management Service.

      El cifrado de secretos de Kubernetes con un CMK AWS KMS requiere Kubernetes versión 1.13 o posterior. Si no aparece ninguna clave, primero debe crear una. Para obtener más información, consulte Creación de claves.

      nota

      De forma predeterminada, el comando create-key crea una clave simétrica con una política de clave que da acceso al administrador del usuario raíz de la cuenta en acciones y recursos de AWS KMS. Si desea ampliar los permisos, asegúrese de que las acciones kms:DescribeKey y kms:CreateGrant estén permitidas en la política de claves para la entidad principal que llamará a la API create-cluster.

      Amazon EKS no admite la condición de política de claveskms:GrantIsForAWSResource. La creación de un clúster no funcionará si esta acción se encuentra en la declaración de política clave.

      aviso

      La eliminación del CMK colocará el clúster permanentemente en un estado degradado. Si se ha programado la eliminación de cualquier CMK utilizado para la creación de clústeres, compruebe que esta es la acción prevista antes de la eliminación. Una vez que se elimina la clave, no hay ruta de recuperación para el clúster.

    • Tags (Etiquetas):— (Opcional) Añada etiquetas a su clúster. Para obtener más información, consulte Etiquetado de los recursos de Amazon EKS.

  4. Seleccione Next (Siguiente).

  5. En la página Specify networking (Especificar red) seleccione valores para los siguientes campos:

    • VPC:Seleccione una VPC existente para utilizarla en el clúster. Si ninguno está en la lista, debe crear uno primero. Para obtener más información, consulte Creación de una VPC para su clúster de Amazon EKS.

    • SubredesDe forma predeterminada se escogen las subredes disponibles de la VPC especificada en el campo anterior. Desactive la selección de cualquier subred que no quiera que aloje recursos del clúster, como nodos de trabajo o balanceadores de carga. Las subredes deben cumplir los requisitos de un clúster de Amazon EKS. Para obtener más información, consulte Consideraciones sobre la VPC del clúster.

      importante
      • Si selecciona subredes que se crearon antes del 26 de marzo de 2020 mediante una de lasAWS CloudFormationLas plantillas de la VPC, tenga en cuenta un cambio de configuración predeterminado que se introdujo el 26 de marzo de 2020. Para obtener más información, consulte Creación de una VPC para su clúster de Amazon EKS.

      • No seleccionar subredes enAWS Outposts,AWS WavelengthorAWSLocal Zones. Si planea implementar nodos autogestionados enAWS Outposts,AWS WavelengthorAWSSubredes de Local Zones después de implementar el clúster y, a continuación, asegúrese de que tiene o puede crear subredes de Outposts en la VPC que seleccione.

      Grupos de seguridad— ElSecurityGroupsdel valorAWS CloudFormationque generó cuando creó suVPC:. Este grupo de seguridad tiene ControlPlaneSecurityGroup en el nombre desplegable.

      importante

      El nodoAWS CloudFormationmodifica el grupo de seguridad que especifique aquí, por lo queAmazon EKS recomienda encarecidamente que utilice un grupo de seguridad dedicado para cada plano de control del clúster (uno por clúster). Si este grupo de seguridad se comparte con otros recursos, podría bloquear o interrumpir las conexiones con esos recursos.

    • (Opcional) ElijaConfigurar el rango de direcciones IP del servicio Kubernetesy especifique unIntervalos de servicios IPv4si desea especificar de qué bloque CIDR Kubernetes asigna direcciones IP del servicio. El bloque CIDR debe cumplir los siguientes requisitos:

      • Dentro de uno de los siguientes rangos: 10.0.0/8, 172.16.0.0/12 o 192.168.0.0/16.

      • Debe estar incluido entre /24 y /12.

      • No se superpone con ningún bloque CIDR especificado en su VPC.

      Se recomienda especificar un bloque CIDR que no se superponga con otras redes que estén conectadas o emparejadas con la VPC. Si no habilita esto, Kubernetes asigna direcciones IP del servicio de desde los bloques de CIDR 10.100.0.0/16 o 172.20.0.0/16.

      importante

      Solo puede especificar un bloque de CIDR personalizado al crear un clúster y no puede cambiar este valor una vez creado el clúster.

    • ParaAcceso al punto de enlace del clúster— Elija una de las siguientes opciones:

      • PublicPermite sólo el acceso público al punto de enlace del servidor de Kubernetes del clúster. Las solicitudes de la API de Kubernetes que se originan desde fuera de la VPC del clúster utilizan el punto de enlace público. De forma predeterminada, se permite el acceso desde cualquier dirección IP de origen. Opcionalmente, puede restringir el acceso a uno o más rangos CIDR, como 192.168.0.0/16, por ejemplo, seleccionando Advanced settings (Configuración avanzada) y, a continuación, seleccionando Add source (Agregar origen).

      • PrivatePermite solo el acceso privado al punto de enlace del servidor de la API de Kubernetes del clúster. Las solicitudes de la API de Kubernetes que provengan de dentro de la VPC del clúster utilizan el punto de enlace de la VPC privada.

        importante

        Si creó una VPC sin acceso a Internet saliente, debe habilitar el acceso privado.

      • Público y privado: permite el acceso público y privado.

      Para obtener más información sobre las opciones anteriores, consulte Modificar el acceso al punto de enlace del clúster.

  6. Si seleccionó la versión 1.17 de Kubernetes o anterior en la página anterior, vaya al siguiente paso. Si seleccionó la versión 1.18 o posterior, puede aceptar los valores predeterminados en elComplementos de redpara instalar la versión predeterminada delAWSVPC CNI,CoreDNS, ykube-proxyComplementos de Amazon EKS, o puede seleccionar una versión diferente. Si no necesita la funcionalidad de ninguno de los complementos, puede eliminarlos una vez creado el clúster.

    Sólo puede utilizar los complementos de Amazon EKS con clústeres 1.18 o posteriores, ya que los complementos de Amazon EKS requieren la función Aplicar Kubernetes del lado del servidor que no estaba disponible hasta Kubernetes 1.18. Si seleccionó una versión diferente de Kubernetes para su clúster, esta opción no se muestra.

    importante

    LaAWSEl complemento CNI de VPC está configurado para utilizar los permisos de IAM asignados a laFunción de IAM de nodo de Amazon EKS. Después de crear el clúster, pero antes de implementar cualquier nodo de Amazon EC2 en el clúster, debe asegurarse de que elAmazonEKS_CNI_PolicyLa directiva de IAM está asociada a la función IAM del nodo o a una función diferente asociada a la cuenta de servicio Kubernetes con la que se ejecuta el complemento. Le recomendamos que asigne la directiva a un rol de IAM diferente al rol de IAM del nodo completando las instrucciones enCómo configurar el complemento CNI de Amazon VPC para utilizar roles de IAM en cuentas de servicio. Una vez que se hayan creado el clúster y el rol de IAM, puedeactualizar el complementoPara utilizar el rol de IAM que cree.

  7. Seleccione Next (Siguiente).

  8. En la página Configure logging (Configurar registro) puede elegir opcionalmente los tipos de registro que desea habilitar. De forma predeterminada, los tipos de registro están Disabled (Deshabilitados). Para obtener más información, consulte Registro del plano de control de Amazon EKS.

  9. Seleccione Next (Siguiente).

  10. En la página Review and create (Revisar y crear) revise la información que ha introducido o seleccionado en las páginas anteriores. Seleccione Edit (Editar) si necesita realizar cambios en cualquiera de sus selecciones. Una vez que esté satisfecho con la configuración, seleccione Create (Crear). El campo Status (Estado) muestra CREATING (CREANDO) hasta que termina el proceso de aprovisionamiento del clúster.

    nota

    Podrían aparecer un error que indica que una de las zonas de disponibilidad de su solicitud no tiene capacidad suficiente para crear un clúster de Amazon EKS. Si esto ocurre, el mensaje de error indicará las zonas de disponibilidad que admiten un nuevo clúster. Intente crear el clúster de nuevo con al menos dos subredes ubicadas en las zonas de disponibilidad admitidas para su cuenta. Para obtener más información, consulte Capacidad insuficiente.

    El aprovisionamiento de clústeres tarda varios minutos.

  11. Siga los procedimientos indicados enCreación de unkubeconfigpara Amazon EKSpara habilitar la comunicación con el nuevo clúster.

  12. (Opcional) Para utilizar algunos complementos de Amazon EKS o para permitir que las cargas de trabajo individuales de Kubernetes tengan permisos de IAM específicos, debe habilitar un proveedor de OpenID Connect (OIDC) para el clúster. Para configurar un proveedor OIDC para el clúster, consulteCree un proveedor OIDC de IAM para su clúster. Solo necesita habilitar un proveedor OIDC para su clúster una vez. Para obtener más información sobre los complementos de Amazon EKS, consulteComplementos de Amazon EKS. Para obtener más información acerca de la asignación de permisos específicos de IAM a las cargas de trabajo, consulteInformación general técnica.

  13. Si va a implementar nodos de Amazon EC2 en su clúster, debe adjuntar elAmazonEKS_CNI_Policydirectiva administrada por IAM a su rol de IAM de clúster o a una función de IAM que cree específicamente para el complemento CNI de Amazon VPC. Para obtener más información acerca de cómo crear el rol y configurar el complemento para utilizarlo, consulteCómo configurar el complemento CNI de Amazon VPC para utilizar roles de IAM en cuentas de servicio.

AWS CLI

Prerequisites

Para crear el clúster con la AWS CLI

  1. Cree el clúster con el comando siguiente. Reemplace el nombre de recurso de Amazon (ARN) de la función de IAM de clúster de Amazon EKS que creó enFunción de IAM del clúster de Amazon EKSy los ID de grupo de seguridad y subred para la VPC creada enCreación de una VPC para su clúster de Amazon EKS. Reemplazar<my-cluster>(incluyendo<>) con el nombre del clúster y<region-code>con unCompatibilidad de regiones. Puede reemplazar<1.20>CualquierVersión admitida.

    ParasubnetIds, no especifique subredes enAWS Outposts,AWS WavelengthorAWSLocal Zones. Si planea implementar nodos autogestionados enAWS Outposts,AWS WavelengthorAWSLocal Zones subredes después de implementar el clúster y, a continuación, asegúrese de que tiene o puede crear subredes de Outposts en la VPC que especifique.

    aws eks create-cluster \ --region <region-code> \ --name <my-cluster> \ --kubernetes-version <1.20> \ --role-arn <arn:aws:iam::111122223333:role/eks-service-role-AWSServiceRoleForAmazonEKS-EXAMPLEBKZRQR> \ --resources-vpc-config subnetIds=<subnet-a9189fe2>,<subnet-50432629>,securityGroupIds=<sg-f5c54184>
    nota

    Si el usuario de IAM no tiene privilegios administrativos, deberá asignarle explícitamente los permisos para llamar a las operaciones de la API de Amazon EKS. Para obtener más información, consulte Ejemplos de políticas basadas en identidad de Amazon EKS.

    Salida:

    { "cluster": { "name": "<my-cluster>", "arn": "arn:aws:eks:<region-code>:<111122223333>:cluster/<my-cluster>", "createdAt": <1527785885.159>, "version": "<1.20>", "roleArn": "arn:aws:iam::<111122223333>:role/eks-service-role-AWSServiceRoleForAmazonEKS-<AFNL4H8HB71F>", "resourcesVpcConfig": { "subnetIds": [ "<subnet-a9189fe2>", "<subnet-50432629>" ], "securityGroupIds": [ "<sg-f5c54184>" ], "vpcId": "<vpc-a54041dc>", "endpointPublicAccess": true, "endpointPrivateAccess": false }, "status": "CREATING", "certificateAuthority": {} } }
    nota

    Podrían aparecer un error que indica que una de las zonas de disponibilidad de su solicitud no tiene capacidad suficiente para crear un clúster de Amazon EKS. Si esto ocurre, el mensaje de error indicará las zonas de disponibilidad que admiten un nuevo clúster. Intente crear el clúster de nuevo con al menos dos subredes ubicadas en las zonas de disponibilidad admitidas para su cuenta. Para obtener más información, consulte Capacidad insuficiente.

    Para cifrar los secretos de Kubernetes con una clave maestra del cliente (CMK) de AWS Key Management Service (AWS KMS), primero cree un CMK utilizando la operación de creación de clave .

    MY_KEY_ARN=$(aws kms create-key --query KeyMetadata.Arn —-output text)
    nota

    De forma predeterminada, el comando create-key crea una clave simétrica con una política de clave que da acceso al administrador del usuario raíz de la cuenta en acciones y recursos de AWS KMS. Si desea ampliar los permisos, asegúrese de que las acciones kms:DescribeKey y kms:CreateGrant estén permitidas en la política de claves para la entidad principal que llamará a la API create-cluster.

    Amazon EKS no admite la condición de política de claveskms:GrantIsForAWSResource. La creación de un clúster no funcionará si esta acción se encuentra en la declaración de política clave.

    Agregue el parámetro --encryption-config al comando aws eks create-cluster. El cifrado de los secretos de Kubernetes sólo se puede habilitar cuando se crea el clúster.

    --encryption-config '[{"resources":["secrets"],"provider":{"keyArn":"<$MY_KEY_ARN>"}}]'

    El miembro keyArn puede contener el alias o el ARN de su CMK. La CMK debe ser simétrica, creada en la misma región que el clúster, y si la CMK se creó en una cuenta diferente, el usuario debe tener acceso a la CMK. Para obtener más información, consulte Permitir que los usuarios de otras cuentas utilicen un CMK en la Guía para desarrolladores de AWS Key Management Service. El cifrado de secretos de Kubernetes con un CMK AWS KMS requiere Kubernetes versión 1.13 o posterior.

    aviso

    La eliminación del CMK colocará el clúster permanentemente en un estado degradado. Si se ha programado la eliminación de cualquier CMK utilizado para la creación de clústeres, compruebe que esta es la acción prevista antes de la eliminación. Una vez que se elimina la clave, no hay ruta de recuperación para el clúster.

  2. El aprovisionamiento de clústeres tarda varios minutos. Puede consultar el estado del clúster con el comando siguiente. Cuando el estado del clúster sea ACTIVE, puede continuar.

    aws eks describe-cluster \ --region <region-code> \ --name <my-cluster> \ --query "cluster.status"
  3. Cuando se complete el aprovisionamiento del clúster, obtenga los valores de endpoint y certificateAuthority.data con los comandos siguientes. Debe agregar estos valores a la configuración de kubectl para poder comunicarse con el clúster.

    1. Obtenga el valor de endpoint.

      aws eks --region <region-code> describe-cluster --name <my-cluster> --query "cluster.endpoint" --output text
    2. Obtenga el valor de certificateAuthority.data.

      aws eks --region <region-code> describe-cluster --name <my-cluster> --query "cluster.certificateAuthority.data" --output text
  4. Siga los procedimientos indicados enCreación de unkubeconfigpara Amazon EKSpara habilitar la comunicación con el nuevo clúster.

  5. (Opcional) Para utilizar complementos de Amazon EKS o para permitir que las cargas de trabajo individuales de Kubernetes tengan permisos de IAM específicos, debe habilitar un proveedor de OpenID Connect (OIDC) para el clúster. Para configurar un proveedor OIDC para el clúster, consulteCree un proveedor OIDC de IAM para su clúster. Solo necesita habilitar un proveedor OIDC para su clúster una vez. Para obtener más información sobre los complementos de Amazon EKS, consulteComplementos de Amazon EKS. Para obtener más información acerca de la asignación de permisos específicos de IAM a las cargas de trabajo, consulteInformación general técnica.

  6. Si va a implementar nodos de Amazon EC2 en su clúster, debe adjuntar elAmazonEKS_CNI_Policydirectiva administrada por IAM a su rol de IAM de clúster o a una función de IAM que cree específicamente para el complemento CNI de Amazon VPC. Para obtener más información acerca de cómo crear el rol y configurar el complemento para utilizarlo, consulteCómo configurar el complemento CNI de Amazon VPC para utilizar roles de IAM en cuentas de servicio.

  7. (Opcional) Si ha creado un clúster 1.18 o posterior, puede migrar el CNI de Amazon VPC, CoreDNS ykube-proxyque se implementaron con su clúster en complementos de Amazon EKS. Para obtener más información, consulte Complementos de Amazon EKS.