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: – eksctl.
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. Esta guía requiere que utilice la versión 2.4.9 o posterior, o bien, la versión 1.22.30 o posterior. Para obtener más información, consulte Instalar, actualizar y desinstalar la AWS CLI 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. -
kubectl
– una herramienta de línea de comandos para trabajar con clústeres de Kubernetes. Esta guía requiere que utilice la versión 1.21 o una posterior. Para obtener más información, consulte Instalar kubectl. -
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 y los roles vinculados al servicio, AWS CloudFormation, y una VPC y recursos relacionados. Para obtener más información, consulte Acciones, recursos y claves de condición de Amazon Elastic Kubernetes Service 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.
Paso 1: crear el clúster de Amazon EKS
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.
Para 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 Región 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-namemy-eks-vpc-stack
\ --template-url https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yamlsugerencia Para obtener una lista de todos los recursos que crea el comando anterior, abra la consola de AWS CloudFormation en https://console.aws.amazon.com/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 denominado
.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://"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 Clusters (Clústeres) de Amazon EKS 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
. -
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 Next (Siguiente).
-
-
En la página Configure logging (Configurar registros), elija Next (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 Creating (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 Active (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.
Para configurar el equipo a fin de comunicarse con el clúster
-
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
--namemy-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 enconfig
. -
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 la sección de solución de problemas.
Salida
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP
1m
Paso 3: crear nodos
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 Nodos de Amazon EKS. 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 Nodos de Amazon EKS. 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 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: elija 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.
Para ver los nodos y las cargas de trabajo
-
En el panel de navegación izquierdo, elija Clusters (Clústeres) de Amazon EKS. A continuación, en la lista de Clusters, elija el nombre del clúster que ha creado, como
my-cluster
. -
En la página
my-cluster
, haga lo siguiente:-
En la pestaña Overview (Información general), verá la lista deNodes (Nodos) que se implementaron para el clúster. Puede elegir el nombre de un nodo para obtener más información sobre él. Para obtener más información sobre lo que ve aquí, consulte Vista de los nodos.
-
En la pestaña Workloads (Cargas de trabajo) del clúster, verá una lista de las cargas de trabajo que se implementan de forma predeterminada en un clúster de Amazon EKS. Puede elegir el nombre de una carga de trabajo para obtener más información sobre ella. Para obtener más información sobre lo que ve aquí, consulte Visualizar cargas de trabajo. Si ha creado nodos de Fargate, solo coredns tiene un estado.
-
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 Pasos siguientes.
Para eliminar los recursos que creó en esta guía
-
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 Amazon EKS Clusters (Clústeres de Amazon EKS). En la lista de clústeres, elija
my-cluster
. -
Elija la pestaña Configuration (Configuración) y, a continuación, elija la pestaña Compute (Computación).
-
Si ha creado un grupo de nodos, elija el grupo de nodos
my-nodegroup
y, luego, elija Delete (Eliminar). Introduzca
y luego escriba Delete (Eliminar).my-nodegroup
-
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.
-
-
Elimine el clúster.
-
En el panel de navegación izquierdo, elija Amazon EKS Clusters (Clústeres de Amazon EKS). En la lista de clústeres, elija
my-cluster
. -
Seleccione Delete cluster (Eliminar clúster).
-
Introduzca
y luego elija Delete (Eliminar). No continúe hasta que se elimine el clúster.my-cluster
-
-
Elimine la pila de AWS CloudFormation de la VPC que ha creado.
-
Abra la consola de AWS CloudFormation en https://console.aws.amazon.com/cloudformation
. -
Elija la pila
my-eks-vpc-stack
y, luego, elija Delete (Eliminar). -
En el cuadro de diálogo de confirmación Delete
my-eks-vpc-stack
(Eliminar my-eks-vpc-stack), elija Delete stack (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í comomyAmazonEKSFargatePodExecutionRole
omyAmazonEKSNodeRole
). Elija Delete (Eliminar), ingrese el texto de confirmación solicitado y, luego, elija Delete (Eliminar).
-
Pasos siguientes
Los temas de documentación siguientes le ayudarán a ampliar la funcionalidad de su clúster.
La entidad de IAM (usuario o rol) que creó el clúster es el único usuario de IAM que puede realizar llamadas al servidor de la API de Kubernetes con
kubectl
. Si desea que otros usuarios tengan acceso a su clúster, consulte Habilitación del acceso de usuarios y roles de IAM al clúster.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.