Parte 2: Creación de clústeres con eksctl
Creación de un clúster con eksctl
eksctl es la forma más sencilla de crear y administrar clústeres de EKS. eksctl utiliza CloudFormation para crear clústeres de EKS y recursos relacionados.
El siguiente diagrama muestra el proceso de creación de un clúster de EKS con eksctl:
Creación básica de clústeres
Para crear la forma más básica de un clúster de EKS, ejecute el siguiente comando:
eksctl create cluster --name my-cluster --region us-west-2Este comando crea un clúster con la siguiente configuración predeterminada:
- 2 nodos m5.large
- VPC y subredes nuevas
- AMI predeterminada de Amazon Linux 2
- Última versión de Kubernetes
Creación de un clúster mediante un archivo de configuración
Para configuraciones más complejas, puede definir el clúster mediante un archivo YAML:
# cluster.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-eks-cluster
region: us-west-2
version: "1.26"
vpc:
id: vpc-12345678
subnets:
private:
us-west-2a:
id: subnet-12345678
us-west-2b:
id: subnet-87654321
public:
us-west-2a:
id: subnet-23456789
us-west-2b:
id: subnet-98765432
managedNodeGroups:
- name: ng-1
instanceType: m5.large
desiredCapacity: 2
minSize: 1
maxSize: 3
privateNetworking: true
volumeSize: 80
volumeType: gp3
iam:
withAddonPolicies:
imageBuilder: true
autoScaler: true
externalDNS: true
certManager: true
appMesh: true
ebs: true
fsx: true
efs: true
albIngress: true
xRay: true
cloudWatch: true
- name: ng-2
instanceType: c5.xlarge
desiredCapacity: 2
privateNetworking: true
spot: true
fargate:
profiles:
- name: fp-default
selectors:
- namespace: default
labels:
env: fargate
- name: fp-kube-system
selectors:
- namespace: kube-system
labels:
k8s-app: kube-dns
cloudWatch:
clusterLogging:
enableTypes: ["api", "audit", "authenticator", "controllerManager", "scheduler"]Para crear un clúster con este archivo de configuración, ejecute el siguiente comando:
eksctl create cluster -f cluster.yamlCreación de Managed Node Groups
El siguiente diagrama muestra la arquitectura de Managed Node Group para un clúster de EKS:
Para agregar un Managed Node Group a un clúster existente, ejecute el siguiente comando:
eksctl create nodegroup \
--cluster my-cluster \
--region us-west-2 \
--name my-nodegroup \
--node-type m5.large \
--nodes 3 \
--nodes-min 1 \
--nodes-max 5 \
--ssh-access \
--ssh-public-key my-keyO puede utilizar un archivo de configuración:
# nodegroup.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-cluster
region: us-west-2
managedNodeGroups:
- name: my-nodegroup
instanceType: m5.large
desiredCapacity: 3
minSize: 1
maxSize: 5
volumeSize: 80
volumeType: gp3
ssh:
allow: true
publicKeyName: my-keyeksctl create nodegroup -f nodegroup.yamlCreación de perfiles de Fargate
El siguiente diagrama muestra la arquitectura del perfil de Fargate de EKS:
Para crear un perfil de Fargate, ejecute el siguiente comando:
eksctl create fargateprofile \
--cluster my-cluster \
--region us-west-2 \
--name my-fargate-profile \
--namespace default \
--labels env=fargateO puede utilizar un archivo de configuración:
# fargate.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-cluster
region: us-west-2
fargate:
profiles:
- name: my-fargate-profile
selectors:
- namespace: default
labels:
env: fargateeksctl create fargateprofile -f fargate.yamlActualización de un clúster
Puede actualizar un clúster existente con eksctl:
# Upgrade cluster version
eksctl upgrade cluster --name=my-cluster --version=1.27
# Upgrade node group
eksctl upgrade nodegroup --cluster=my-cluster --name=my-nodegroupEliminación de un clúster
Puede eliminar un clúster con eksctl:
eksctl delete cluster --name=my-cluster --region=us-west-2Administración del ciclo de vida del clúster de EKS
El siguiente diagrama muestra el proceso general de administración del ciclo de vida de un clúster de EKS:
Cuestionario
Para comprobar lo que aprendió en este capítulo, pruebe el Cuestionario de creación de clústeres de EKS - Parte 2.



