-
Si ya tiene un rol de IAM de clúster o va a crear su clúster con eksctl
, puede omitir este paso. Por defecto, eksctl
crea un rol.
Para crear el rol de IAM del clúster de Amazon EKS
-
Ejecute el siguiente comando para crear un archivo de política de confianza JSON de IAM.
cat >eks-cluster-role-trust-policy.json
<<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
EOF
-
Cree el rol de IAM del clúster de Amazon EKS. Si es necesario, introduzca eks-cluster-role-trust-policy.json
con la ruta del equipo en la que escribió el archivo en el paso anterior. El comando asocia la política de confianza creada en el paso anterior al rol. Para crear un rol de IAM, a la entidad principal de IAM que está creando el rol se le debe asignar la acción iam:CreateRole
(permiso).
aws iam create-role --role-name myAmazonEKSClusterRole
--assume-role-policy-document file://"eks-cluster-role-trust-policy.json
"
-
Puede asignar la política administrada de Amazon EKS o bien crear su propia política personalizada. Para conocer los permisos mínimos que debe utilizar en su política personalizada, consulte Rol de IAM del clúster de Amazon EKS.
Adjunte la política administrada de IAM por Amazon EKS denominada AmazonEKSClusterPolicy
al rol. Para adjuntar una política de IAM a una entidad principal de IAM, se debe asignar una de las siguientes acciones de IAM (permisos) a la entidad principal que adjunta la política: iam:AttachUserPolicy
o iam:AttachRolePolicy
.
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy --role-name myAmazonEKSClusterRole
-
Cree un clúster de Amazon EKS.
Puede crear un clúster mediante la eksctl
, la AWS Management Console o la AWS CLI.
- eksctl
-
Requisito previo
La versión 0.191.0
o posterior de la herramienta de línea de comandos eksctl
instalada en su dispositivo o AWS CloudShell. Para instalar o actualizar eksctl
, consulte la sección de Instalación en la documentación de eksctl
.
Cómo crear el clúster
Cree un clúster de Amazon EKS IPv4
con la versión más reciente de Kubernetes de Amazon EKS en su Región de AWS predeterminada. Antes de ejecutar el comando, realice los siguientes reemplazos:
-
Reemplace region-code
por la Región de AWS en la que desea implementar sus recursos.
-
Reemplace my-cluster
por el nombre del clúster. El nombre solo puede contener caracteres alfanuméricos (con distinción de mayúsculas y minúsculas) y guiones. Debe comenzar con un carácter alfanumérico y no puede tener más de 100 caracteres. El nombre debe ser único dentro de la Región de AWS y la Cuenta de AWS en las que va a crear el clúster.
-
Reemplace 1.31
por cualquier versión compatible con Amazon EKS.
Para implementar un clúster 1.31 en este momento, debe utilizar el AWS Management Console o el AWS CLI.
-
Cambie los valores de vpc-private-subnets
para satisfacer sus necesidades. También puede agregar identificadores adicionales. Debe especificar al menos dos ID de subredes. Si prefiere especificar subredes públicas, puede cambiar --vpc-private-subnets
a --vpc-public-subnets
. Las subredes públicas tienen una tabla de enrutamiento asociada a una ruta a una puerta de enlace de Internet, pero las subredes privadas no tienen una tabla de enrutamiento asociada. Recomendamos utilizar subredes privadas siempre que sea posible.
Las subredes que elija deben cumplir los Requisitos de subred de Amazon EKS. Antes de seleccionar subredes, le recomendamos que esté familiarizado con todas las consideraciones y requisitos de subred y VPC de Amazon EKS.
eksctl create cluster --name my-cluster
--region region-code
--version 1.31
--vpc-private-subnets subnet-ExampleID1
,subnet-ExampleID2
--without-nodegroup
El aprovisionamiento de clústeres tarda varios minutos. Mientras se crea el clúster, aparecen 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
Configuración opcional
A continuación se muestra una configuración opcional que, si es necesario, debe agregarse al comando anterior. Solo puede habilitar estas opciones al crear el clúster, no después. Si necesita especificar estas opciones, debe crear el clúster con un archivo de configuración eksctl
y especifique la configuración, en lugar de utilizar el comando anterior.
-
Si desea especificar uno o varios grupos de seguridad que Amazon EKS asigna a las interfaces de red que crea, especifique la opción securityGroup
.
Independientemente de que elija grupos de seguridad o no, Amazon EKS crea un grupo de seguridad que permite la comunicación entre el clúster y la VPC. Amazon EKS asocia este grupo de seguridad, y el que elija, a las interfaces de red que crea. Para obtener más información acerca del grupo de seguridad de clúster que crea Amazon EKS, consulte Revisión de requisitos de grupos de seguridad de Amazon EKS para clústeres. Puede modificar las reglas del grupo de seguridad en el clúster que crea Amazon EKS.
-
Si quiere especificar desde qué bloque de enrutamiento entre dominios sin clase (CIDR) IPv4
Kubernetes asigna direcciones IP de servicio, especifique la opción serviceIPv4CIDR
.
Especificar su propio intervalo puede ayudar a evitar conflictos entre servicios de Kubernetes y otras redes interconectadas o conectadas a la VPC. Escriba un rango en notación CIDR. Por ejemplo: 10.2.0.0/16
.
El bloque de CIDR debe cumplir los siguientes requisitos:
Se encuentra dentro de una de las siguientes gamas: 10.0.0.0/8
, 172.16.0.0/12
o 192.168.0.0/16
.
Tiene un tamaño mínimo de /24
y un tamaño máximo de /12
.
No se superponen con el rango de la VPC de los recursos de Amazon EKS.
Solo se puede especificar esta opción cuando se utiliza la familia IPv4
de direcciones y solo en la creación de clústeres. Si no especifica esto, entonces Kubernetes asigna direcciones IP de servicio desde los bloques CIDR 10.100.0.0/16
o 172.20.0.0/16
.
-
Si va a crear un clúster y desea que el clúster asigne direcciones IPv6
a Pods y servicios en lugar de direcciones IPv4
, especifique la opción ipFamily
.
Kubernetes asigna direcciones IPv4
a los Pods y servicios de manera predeterminada. Antes de decidir utilizar la familia IPv6
, asegúrese de estar familiarizado con todas las consideraciones y requisitos en los temas Requisitos y consideraciones de la VPC, Requisitos y consideraciones de la subred, Revisión de requisitos de grupos de seguridad de Amazon EKS para clústeres y Asignación de direcciones IPv6 a clústeres, pods y servicios. Si elige la familia IPv6
, no puede especificar un intervalo de direcciones para que Kubernetes asigne direcciones de servicio IPv6
desde lo que puede hacer para la familia IPv4
. Kubernetes asigna direcciones de servicio del rango de direcciones local exclusivo (fc00::/7
).
- AWS Management Console
-
Cómo crear el clúster
Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters.
-
Elija Agregar clúster y, a continuación, elija Crear.
-
En la página Configurar clúster rellene los siguientes campos:
-
Nombre: un nombre único para el clúster. El nombre solo puede contener caracteres alfanuméricos (con distinción de mayúsculas y minúsculas) y guiones bajos. Debe comenzar con un carácter alfanumérico y no puede tener más de 100 caracteres. El nombre debe ser único dentro de la Región de AWS y la Cuenta de AWS en las que va a crear el clúster.
-
Versión de Kubernetes: La versión de Kubernetes que debe utilizarse para el clúster. Le recomendamos que seleccione la versión más reciente, a menos que necesite una versión anterior.
-
Tipo de soporte: la política de la versión de Kubernetes que desea configurar para su clúster. Si quiere que su clúster solo se ejecute en una versión de soporte estándar, puede elegir Soporte estándar. Si quiere que su clúster entre en el soporte extendido al final del soporte estándar de una versión, puede elegir Soporte extendido. Si selecciona una versión de Kubernetes que actualmente tenga soporte extendido, no podrá seleccionar el soporte estándar como opción.
-
Rol de servicio del clúster: elija el rol de IAM del clúster de Amazon EKS que creó para permitir que el plano de control de Kubernetes administre los recursos de AWS en su nombre.
-
Cifrado de secretos: (opcional) elija habilitar el cifrado de secretos de los secretos de Kubernetes con una clave de KMS. También puede habilitarlo después de crear el clúster. Antes de habilitar esta capacidad, asegúrese de estar familiarizado con la información de Cifrado de los secretos de Kubernetes con AWS KMS en los clústeres existentes.
-
Etiquetas: (opcional) agregue las etiquetas a su clúster. Para obtener más información, consulte Organización de los recursos de Amazon EKS con etiquetas.
Cuando haya terminado con esta página, seleccione Siguiente.
-
En la página Especificar red seleccione valores para los siguientes campos:
-
VPC: Elija una VPC existente que cumpla con los Requisitos de Amazon EKS VPC en el que crear el clúster. Antes de elegir una VPC, le recomendamos que esté familiarizado con todos los requisitos y consideraciones de Requisitos de red de Amazon EKS para VPC y subredes. No puede cambiar la VPC que desea utilizar después de crear un clúster. Si no hay ninguna VPC en la lista, debe crear una primero. Para obtener más información, consulte Creación de una Amazon VPC para su clúster de Amazon EKS.
-
Subredes: de forma predeterminada, se preseleccionan todas las subredes disponibles de la VPC especificada en el campo anterior. Debe seleccionar al menos dos.
Las subredes que elija deben cumplir los Requisitos de subred de Amazon EKS. Antes de seleccionar subredes, le recomendamos que esté familiarizado con todas las consideraciones y requisitos de subred y VPC de Amazon EKS.
Grupos de seguridad: (opcional) especifique uno o varios grupos de seguridad que desea que Amazon EKS asocie a las interfaces de red que crea.
Independientemente de que elija grupos de seguridad o no, Amazon EKS crea un grupo de seguridad que permite la comunicación entre el clúster y la VPC. Amazon EKS asocia este grupo de seguridad, y el que elija, a las interfaces de red que crea. Para obtener más información acerca del grupo de seguridad de clúster que crea Amazon EKS, consulte Revisión de requisitos de grupos de seguridad de Amazon EKS para clústeres. Puede modificar las reglas del grupo de seguridad en el clúster que crea Amazon EKS.
-
Elija la familia de direcciones IP del clúster: Puede elegir IPv4 e IPv6.
Kubernetes asigna direcciones IPv4
a los Pods y servicios de manera predeterminada. Antes de decidir utilizar la familia IPv6
, asegúrese de estar familiarizado con todas las consideraciones y requisitos en los temas Requisitos y consideraciones de la VPC, Requisitos y consideraciones de la subred, Revisión de requisitos de grupos de seguridad de Amazon EKS para clústeres y Asignación de direcciones IPv6 a clústeres, pods y servicios. Si elige la familia IPv6
, no puede especificar un intervalo de direcciones para que Kubernetes asigne direcciones de servicio desde IPv6
como puede hacer para la familia IPv4
. Kubernetes asigna direcciones de servicio del rango de direcciones local exclusivo (fc00::/7
).
-
(Opcional) Elija Configuración del rango de direcciones IP de Kubernetes Service y especifique un Rango de servicio IPv4
.
Especificar su propio intervalo puede ayudar a evitar conflictos entre servicios de Kubernetes y otras redes interconectadas o conectadas a la VPC. Escriba un rango en notación CIDR. Por ejemplo: 10.2.0.0/16
.
El bloque de CIDR debe cumplir los siguientes requisitos:
Se encuentra dentro de una de las siguientes gamas: 10.0.0.0/8
, 172.16.0.0/12
o 192.168.0.0/16
.
Tiene un tamaño mínimo de /24
y un tamaño máximo de /12
.
No se superponen con el rango de la VPC de los recursos de Amazon EKS.
Solo se puede especificar esta opción cuando se utiliza la familia IPv4
de direcciones y solo en la creación de clústeres. Si no especifica esto, entonces Kubernetes asigna direcciones IP de servicio desde los bloques CIDR 10.100.0.0/16
o 172.20.0.0/16
.
-
Para el Acceso al punto de conexión del clúster, seleccione una opción. Una vez que se crea el clúster, puede cambiar esta opción. Antes de seleccionar una opción no predeterminada, asegúrese de familiarizarse con las opciones y sus implicaciones. Para obtener más información, consulte Control del acceso de la red al punto de conexión del servidor de API del clúster.
Cuando haya terminado con esta página, seleccione Siguiente.
-
(Opcional) En la página Configurar la observabilidad, seleccione qué opciones de métricas y registro de planos de control quiere activar. De forma predeterminada, cada tipo de registro está desactivado.
Cuando haya terminado con esta página, seleccione Siguiente.
-
En la página Seleccionar complementos, elija los complementos que desea agregar al clúster. Puede elegir tantos complementos de Amazon EKS y complementos de AWS Marketplace como necesite. Si los complementos de AWS Marketplace que quiere instalar no aparecen en la lista, puede buscar los complementos de AWS Marketplace disponibles al introducir texto en el cuadro de búsqueda. También puede buscar por categoría, proveedor o modelo de precios y, a continuación, elegir los complementos en los resultados de la búsqueda. Cuando haya terminado con esta página, seleccione Siguiente.
Algunos complementos, como la CNI de Amazon VPC, CoreDNS y kube-proxy, se instalan de forma predeterminada. Si desactiva alguno de los complementos predeterminados, esto puede afectar a su capacidad para ejecutar aplicaciones de Kubernetes.
-
En la página Configurar las opciones de complementos seleccionados, seleccione la versión que desee instalar. Siempre puede actualizar a una versión posterior después de crear el clúster. Puede actualizar la configuración de cada complemento después de crear el clúster. Para obtener más información acerca de la configuración de complementos, consulte Actualización de un complemento de Amazon EKS. Cuando haya terminado con esta página, seleccione Siguiente.
-
En la página Revisar y crear, revise la información que introdujo o seleccionó en las páginas anteriores. Si necesita realizar cambios, seleccione Edit (Editar). Cuando esté satisfecho, seleccione Create (Crear). El campo Status (Estado) muestra CREATING (CREANDO) mientras se aprovisiona el clúster.
Es posible que reciba un error que indique que una de las zonas de disponibilidad de la 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 clúster nuevo. 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.
- AWS CLI
-
Cómo crear el clúster
-
Cree el clúster con el siguiente comando. Antes de ejecutar el comando, realice los siguientes reemplazos:
-
Reemplace region-code
por la Región de AWS en la que desea implementar sus recursos.
-
Reemplace my-cluster
por el nombre del clúster. El nombre solo puede contener caracteres alfanuméricos (con distinción de mayúsculas y minúsculas) y guiones bajos. Debe comenzar con un carácter alfanumérico y no puede tener más de 100 caracteres. El nombre debe ser único dentro de la Región de AWS y la Cuenta de AWS en las que va a crear el clúster.
-
Reemplace 1.31
por cualquier versión compatible con Amazon EKS.
-
Reemplace 111122223333
por el ID de la cuenta y myAmazonEKSClusterRole
por el nombre rol de IAM de su clúster.
-
Reemplace los valores subnetIds
con valores propios. También puede agregar identificadores adicionales. Debe especificar al menos dos ID de subredes.
Las subredes que elija deben cumplir los Requisitos de subred de Amazon EKS. Antes de seleccionar subredes, le recomendamos que esté familiarizado con todas las consideraciones y requisitos de subred y VPC de Amazon EKS.
-
Si no desea especificar un ID de grupo de seguridad, elimine ,securityGroupIds=sg-ExampleID1
del comando. Si desea especificar uno o varios ID de grupo de seguridad, sustituya los valores de securityGroupIds
con la suya propia. También puede agregar identificadores adicionales.
Independientemente de que elija grupos de seguridad o no, Amazon EKS crea un grupo de seguridad que permite la comunicación entre el clúster y la VPC. Amazon EKS asocia este grupo de seguridad, y el que elija, a las interfaces de red que crea. Para obtener más información acerca del grupo de seguridad de clúster que crea Amazon EKS, consulte Revisión de requisitos de grupos de seguridad de Amazon EKS para clústeres. Puede modificar las reglas del grupo de seguridad en el clúster que crea Amazon EKS.
aws eks create-cluster --region region-code
--name my-cluster
--kubernetes-version 1.31
\
--role-arn arn:aws:iam::111122223333
:role/myAmazonEKSClusterRole
\
--resources-vpc-config subnetIds=subnet-ExampleID1
,subnet-ExampleID2
,securityGroupIds=sg-ExampleID1
Es posible que reciba un error que indique que una de las zonas de disponibilidad de la 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 clúster nuevo. 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.
Configuración opcional
A continuación se muestra una configuración opcional que, si es necesario, debe agregarse al comando anterior. Solo puede habilitar estas opciones al crear el clúster, no después.
-
De forma predeterminada, EKS instala varios complementos de red durante la creación del clúster. Esto incluye la CNI de Amazon VPC, CoreDNS y kube-proxy.
Si desea desactivar la instalación de estos complementos de red predeterminados, utilice el siguiente parámetro. Esto se puede usar para CNI alternativos, como Cilium. Para obtener más información, consulte la Referencia de la API de EKS.
aws eks create-cluster
--bootstrapSelfManagedAddons false
-
Si quiere especificar desde qué bloque de enrutamiento entre dominios sin clase (CIDR) IPv4
Kubernetes asigna direcciones IP de servicio, debe especificarlo agregando el --kubernetes-network-config
serviceIpv4Cidr=CIDR
block
al siguiente comando.
Especificar su propio intervalo puede ayudar a evitar conflictos entre servicios de Kubernetes y otras redes interconectadas o conectadas a la VPC. Escriba un rango en notación CIDR. Por ejemplo: 10.2.0.0/16
.
El bloque de CIDR debe cumplir los siguientes requisitos:
Se encuentra dentro de una de las siguientes gamas: 10.0.0.0/8
, 172.16.0.0/12
o 192.168.0.0/16
.
Tiene un tamaño mínimo de /24
y un tamaño máximo de /12
.
No se superponen con el rango de la VPC de los recursos de Amazon EKS.
Solo se puede especificar esta opción cuando se utiliza la familia IPv4
de direcciones y solo en la creación de clústeres. Si no especifica esto, entonces Kubernetes asigna direcciones IP de servicio desde los bloques CIDR 10.100.0.0/16
o 172.20.0.0/16
.
-
Si está creando un clúster y desea que el clúster asigne direcciones IPv6
a Pods y servicios en lugar de direcciones IPv4
, agregue --kubernetes-network-config
ipFamily=ipv6
al siguiente comando.
Kubernetes asigna direcciones IPv4
a los Pods y servicios de manera predeterminada. Antes de decidir utilizar la familia IPv6
, asegúrese de estar familiarizado con todas las consideraciones y requisitos en los temas Requisitos y consideraciones de la VPC, Requisitos y consideraciones de la subred, Revisión de requisitos de grupos de seguridad de Amazon EKS para clústeres y Asignación de direcciones IPv6 a clústeres, pods y servicios. Si elige la familia IPv6
, no puede especificar un intervalo de direcciones para que Kubernetes asigne direcciones de servicio desde IPv6
como puede hacer para la familia IPv4
. Kubernetes asigna direcciones de servicio del rango de direcciones local exclusivo (fc00::/7
).
-
La provisión del clúster puede tardar varios minutos. Puede consultar el estado del clúster con el siguiente comando.
aws eks describe-cluster --region region-code
--name my-cluster
--query "cluster.status"
No continúe con el siguiente paso hasta que la salida devuelta sea ACTIVE
.
-
Si ha creado el clúster mediante eksctl
, puede omitir este paso. Esto se debe a que eksctl
ya ha completado este paso. Habilite kubectl
para comunicarse con el clúster agregando un nuevo contexto al archivo kubectl
config
. Para obtener más información acerca de cómo crear y actualizar el archivo, consulte Conexión de kubectl a un clúster de EKS mediante la creación de un archivo kubeconfig.
aws eks update-kubeconfig --region region-code
--name my-cluster
Un ejemplo de salida sería el siguiente.
Added new context arn:aws:eks:region-code
:111122223333
:cluster/my-cluster
to /home/username/
.kube/config
-
Confirme la comunicación con el clúster ejecutando el siguiente comando.
kubectl get svc
Un ejemplo de salida sería el siguiente.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 28h
-
(Recomendado) Para utilizar algunos complementos de Amazon EKS, o para permitir que las cargas de trabajo individuales de Kubernetes tengan permisos específicos de AWS Identity and Access Management (IAM), cree un proveedor de OpenID Connect (OIDC) de IAM para su clúster. Solo tiene que crear un proveedor de OIDC de IAM para su clúster una vez. Para obtener más información sobre los complementos de Amazon EKS, consulte Complementos de Amazon EKS. Para obtener más información sobre la asignación de permisos de IAM específicos a sus cargas de trabajo, consulte Roles de IAM para cuentas de servicio.
-
(Recomendado) Configure el clúster para el complemento Amazon VPC CNI plugin for Kubernetes antes de implementar nodos Amazon EC2 en su clúster. De forma predeterminada, el complemento se instaló con el clúster. Cuando agrega nodos de Amazon EC2 a su clúster, el complemento se implementa automáticamente en cada nodo de Amazon EC2 que agregue. El complemento requiere que adjunte una de las siguientes políticas de IAM a un rol de IAM:
El rol de IAM al que adjunta la política puede ser el rol de IAM de nodo o un rol dedicado que se usa solo para el complemento. Recomendamos adjuntar la política a este rol. Para obtener más información sobre la creación del rol, consulte la Configuración del complemento de CNI de Amazon VPC para utilizar IRSA o la Rol de IAM de nodo de Amazon EKS.
-
Si ha implementado el clúster mediante el AWS Management Console, puede omitir este paso. La AWS Management Console implementa los complementos Amazon VPC CNI plugin for Kubernetes, CoreDNS y kube-proxy
de Amazon EKS, de forma predeterminada.
Si implementa el clúster mediante eksctl
o la AWS CLI, entonces se implementan los complementos Amazon VPC CNI plugin for Kubernetes, CoreDNS y kube-proxy
autoadministrados. Puede migrar los complementos autoadministrados Amazon VPC CNI plugin for Kubernetes, CoreDNS y kube-proxy
que se implementan con su clúster en complementos de Amazon EKS. Para obtener más información, consulte Complementos de Amazon EKS.
-
(Opcional) Si aún no lo ha hecho, puede habilitar las métricas de Prometheus para su clúster. Para obtener más información, consulte Crear un raspador en la Guía del usuario de Amazon Managed Service for Prometheus.
-
Si ha activado las métricas de Prometheus, debe configurar las aws-auth
ConfigMap
para conceder al raspador permisos dentro del clúster. Para obtener más información, consulte Configuración del clúster de Amazon EKS en la Guía del usuario de Amazon Managed Service for Prometheus.
-
Si tiene previsto implementar cargas de trabajo en su clúster que utilicen volúmenes de Amazon EBS y creó un clúster de la versión 1.23
o posterior, deberá instalar el Almacenamiento de volúmenes de Kubernetes con Amazon EBS en su clúster antes de implementar las cargas de trabajo.