Introducción a Amazon EKS: AWS Management Console y AWS CLI
Esta guía lo ayuda a crear todos los recursos necesarios para comenzar a utilizar Amazon Elastic Kubernetes Service (Amazon EKS) mediante la AWS Management Console y la AWS CLI. En esta guía, creará cada recurso de forma manual. Al final de este tutorial, contará con un clúster de Amazon EKS en ejecución en el que puede implementar aplicaciones.
Los procedimientos de esta guía le dan una visibilidad completa sobre cómo se crea cada recurso y cómo interactúan los recursos entre sí. Si prefiere que la mayoría de los recursos se creen de forma automática, utilice la CLI de eksctl
para crear el clúster y los nodos. Para obtener más información, consulte Introducción a Amazon EKS: ekstcl.
Requisitos previos
Antes de comenzar este tutorial, debe instalar y configurar las siguientes herramientas y recursos que necesitará para crear y administrar un clúster de Amazon EKS.
-
AWS CLI: una herramienta de línea de comandos para trabajar con servicios de AWS, incluido Amazon EKS. Para obtener más información, consulte Instalación en la Guía del usuario de AWS Command Line Interface. Después de instalar la AWS CLI, recomendamos que también la configure. Para obtener más información, consulte Configuración rápida con aws configure en la Guía del usuario de AWS Command Line Interface. Tenga en cuenta que necesita la v2 de la AWS CLI para utilizar la opción update-kubeconfig que se muestra en esta página.
-
kubectl
: una herramienta de línea de comandos para trabajar con clústeres de Kubernetes. Para obtener más información, consulte Configure kubectl y eksctl. -
Permisos de IAM necesarios: la entidad principal de seguridad de IAM que está utilizando debe contar con permisos para trabajar con los roles de IAM de Amazon EKS, los roles vinculados al servicio, AWS CloudFormation, una VPC y recursos relacionados. Para obtener más información, consulte Acciones y Uso de roles vinculados a servicios en la Guía del usuario de IAM. Debe completar todos los pasos de esta guía como el mismo usuario. Ejecute el siguiente comando para comprobar el usuario actual:
aws sts get-caller-identity
Le recomendamos que siga los pasos de este tema en un intérprete de comandos Bash. Si no está utilizando un intérprete de comandos Bash, algunos comandos de script, como los caracteres de continuación de línea y la forma en que se establecen y utilizan las variables, requieren ajustes para su intérprete de comandos. Además, las reglas de entrecomillado y escape de su intérprete de comandos pueden ser diferentes. Para obtener más información, consulte Uso de entrecomillado de cadenas en la AWS CLI de la Guía del usuario de AWS Command Line Interface.
Paso 1: crear el clúster de Amazon EKS
importante
Para comenzar de la manera más sencilla y rápida posible, en este tema se incluye pasos a fin de crear un clúster con la configuración predeterminada. Antes de crear un clúster para su uso en producción, recomendamos que conozca toda la configuración e implemente un clúster con la configuración que satisfaga sus requisitos. Para obtener más información, consulte Creación de un clúster de Amazon EKS. Algunos ajustes de configuración solo se pueden habilitar al crear el clúster.
-
Cree una Amazon VPC con subredes privadas y públicas que cumplan con los requisitos de Amazon EKS. Reemplace
region-code
por cualquier región de AWS en la que se admita Amazon EKS. Para ver una lista de las regiones de AWS, consulte Puntos de conexión y cuotas de Amazon EKS en la Guía de referencia general de AWS. Puede reemplazarmy-eks-vpc-stack
por el nombre que elija.aws cloudformation create-stack \ --region region-code \ --stack-name my-eks-vpc-stack \ --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
sugerencia
Para obtener una lista de todos los recursos que crea el comando anterior, abra la consola de AWS CloudFormation en cloudformation
. Elija la pila my-eks-vpc-stack
y, a continuación, elija la pestaña Resources (Recursos). -
Cree un rol de IAM de clúster y adjúntelo a la política administrada de IAM de Amazon EKS. Los clústeres de Kubernetes administrados por Amazon EKS realizan llamadas a otros servicios de AWS en su nombre para administrar los recursos que utiliza con el servicio.
-
Copie el siguiente contenido en un archivo con el nombre
eks-cluster-role-trust-policy.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Cree el rol.
aws iam create-role \ --role-name myAmazonEKSClusterRole \ --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
-
Adjunte la política administrada de IAM por Amazon EKS requerida al rol.
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name myAmazonEKSClusterRole
-
-
Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters
. Asegúrese de que la región de AWS que se muestra en la parte superior derecha de la consola sea la región de AWS en la que desea crear el clúster. De lo contrario, elija el menú desplegable junto al nombre de la región de AWS y elija la región de AWS que desea utilizar.
-
Elija Add cluster (Agregar clúster) y, a continuación, elija Create (Crear). Si no ve esta opción, elija Clústeres en el panel de navegación izquierdo primero.
-
En la página Configure cluster (Configurar clúster), haga lo siguiente:
-
Ingrese un Name (Nombre) para su clúster, como
my-cluster
. 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. -
En Cluster Service Role (Rol de servicio de clúster), elija
myAmazonEKSClusterRole
. -
Conserve el resto de la configuración con sus valores predeterminados y elija Next (Siguiente).
-
-
En la página Specify networking (Especificar redes), haga lo siguiente:
-
Elija el ID de la VPC que creó en un paso anterior en la lista desplegable de VPC. Es algo similar a
vpc-00x0000x000x0x000
|my-eks-vpc-stack-VPC
. -
Conserve el resto de la configuración con sus valores predeterminados y elija Siguiente.
-
-
En la página Configurar observabilidad, elija Siguiente.
-
En la página Seleccionar complementos, elija Siguiente.
Para obtener más información sobre los complementos, consulte Complementos de Amazon EKS.
-
En la página Configurar las opciones de complementos seleccionados, elija Siguiente.
-
En la página Review and create (Revisar y crear), elija Create (Crear).
A la derecha del nombre del clúster, el estado del clúster es En creación durante varios minutos hasta que se complete el proceso de aprovisionamiento del clúster. No siga con el paso siguiente hasta que el estado sea Activo.
nota
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.
Paso 2: configurar el equipo para comunicarse con el clúster
En esta sección creará un archivo de kubeconfig
para el clúster. La configuración de este archivo permite a la CLI de kubectl
comunicarse con el clúster.
Antes de continuar, asegúrese de que la creación del clúster se haya completado correctamente en el paso 1.
-
Cree o actualice un archivo de
kubeconfig
para el clúster. Reemplaceregion-code
con la región de AWS en la creó el clúster. Reemplacemy-cluster
por el nombre de su clúster.aws eks update-kubeconfig --region region-code --name my-cluster
De forma predeterminada, el archivo de
config
se crea en~/.kube
o la configuración del clúster nuevo se agrega a un archivo deconfig
existente en~/.kube
. -
Pruebe la configuración.
kubectl get svc
nota
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.
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
Paso 3: crear nodos
importante
Para comenzar de la manera más sencilla y rápida posible, en este tema se incluyen pasos a fin de crear nodos con la configuración predeterminada. Antes de crear nodos para su uso en producción, recomendamos que conozca toda la configuración e implemente nodos con la configuración que satisfaga sus requisitos. Para obtener más información, consulte Administración de los recursos de computación mediante nodos. Algunos ajustes de configuración solo se pueden habilitar al crear los nodos.
Puede crear un clúster con uno de los siguientes tipos de nodos. Para obtener más información sobre cada tipo, consulte Administración de los recursos de computación mediante nodos. Después de implementar el clúster, puede agregar otros tipos de nodos.
-
Fargate – Linux : elija este tipo de nodo si desea ejecutar aplicaciones de Linux en Simplificación de la administración de computación con AWS Fargate. Fargate es un motor de computación sin servidor que le permite implementar Pods de Kubernetes sin administrar instancias de Amazon EC2.
-
Nodos administrados – Linux : seleccione este tipo de nodo si desea ejecutar aplicaciones de Amazon Linux en instancias de Amazon EC2. Aunque no se trata en esta guía, también puede agregar nodos autoadministrados de Windows y Bottlerocket a su clúster.
Paso 4: ver recursos
Puede ver sus nodos y cargas de trabajo de Kubernetes.
-
En el panel de navegación izquierdo, elija Clusters (Clústeres). En la lista de Clusters (Clústeres), elija el nombre del clúster que ha creado, como
my-cluster
. -
En la página
my-cluster
, elija lo siguiente:-
En la pestaña Compute (Informática), verá la lista de Nodes (Nodos) que se implementaron para el clúster. Puede elegir el nombre de un nodo para obtener más información sobre él.
-
En la pestaña Recursos: consulte todos los recursos de Kubernetes que se implementan de forma predeterminada en un clúster de Amazon EKS. Seleccione cualquier tipo de recurso en la consola de para obtener más información sobre él.
-
Paso 5: eliminar recursos
Cuando haya terminado con el clúster y los nodos que creó para este tutorial, deberá eliminar los recursos creados. Si desea hacer más con este clúster antes de eliminar los recursos, consulte Siguientes pasos.
-
Elimine cualquier grupo de nodos o perfil de Fargate que haya creado.
-
Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters
. -
En el panel de navegación izquierdo, elija Clusters (Clústeres). En la lista de clústeres, elija
my-cluster
. -
Elija la pestaña Computación.
-
Si ha creado un grupo de nodos, elija el grupo de nodos
my-nodegroup
y, luego, elija Delete (Eliminar). Ingresemy-nodegroup
y, a continuación, seleccione Eliminar. -
Para cada perfil de Fargate que haya creado, elíjalo y, luego, elija Delete (Eliminar). Ingrese el nombre del perfil y, a continuación, elija Delete (Eliminar).
nota
Si elimina un segundo perfil de Fargate, es posible que tenga que esperar a que se termine de eliminar el primero.
-
No continúe hasta que el grupo de nodos o los perfiles de Fargate se eliminen.
-
-
Eliminar el clúster.
-
En el panel de navegación izquierdo, elija Clusters (Clústeres). En la lista de clústeres, elija
my-cluster
. -
Seleccione Delete cluster (Eliminar clúster).
-
Ingrese
my-cluster
y, a continuación, seleccione Eliminar. No continúe hasta que se elimine el clúster.
-
-
Elimine la pila de AWS CloudFormation de la VPC que ha creado.
-
Abra la AWS consola de CloudFormation
. -
Elija la pila
my-eks-vpc-stack
y, luego, elija Delete (Eliminar). -
En el cuadro de diálogo de confirmación Eliminar
my-eks-vpc-stack
, elija Eliminar pila.
-
-
Elimine los roles de IAM que ha creado.
-
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación izquierdo, seleccione Roles.
-
Seleccione todos los roles que creó en la lista (
myAmazonEKSClusterRole
, así como AmazonEKSFargatePodExecutionRole omyAmazonEKSNodeRole
). Elija Delete (Eliminar), ingrese el texto de confirmación solicitado y, luego, elija Delete (Eliminar).
-
Siguientes pasos
Los siguientes temas de documentación lo ayudarán a ampliar la funcionalidad de su clúster.
-
La entidad principal de IAM que creó el clúster es la única entidad principal que puede realizar llamadas al servidor de la API de Kubernetes con
kubectl
o laAWS Management Console. Si desea que otras entidades principales de IAM tengan acceso al clúster, debe agregarlas. Para obtener más información, consulte Concesión a los usuarios y roles de IAM de acceso a las API de Kubernetes y Permisos necesarios. -
Implemente una aplicación de muestra en su clúster.
-
Antes de implementar un clúster para su uso en producción, le recomendamos que se familiarice con toda la configuración de clústeres y nodos. Algunos ajustes (como habilitar el acceso SSH a los nodos de Amazon EC2) deben establecerse cuando se crea el clúster.
-
Para aumentar la seguridad del clúster, configure el complemento de interfaz de red de contenedores de Amazon VPC a fin de utilizar roles de IAM para cuentas de servicio.