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 y administración de clústeres
En este tema se explica cómo crear y eliminar clústeres de EKS mediante Eksctl. Puede crear clústeres con un comando CLI o mediante la creación de un archivo YAML de configuración de clústeres.
Crear un clúster sencillo
Cree un clúster simple con el siguiente comando:
eksctl create cluster
Esto creará un clúster de EKS en su región predeterminada (según lo especificado en la configuración de la AWS CLI) con un grupo de nodos administrado que contiene dos nodos m5.large.
eksctl ahora crea un grupo de nodos administrado de forma predeterminada cuando no se utiliza un archivo de configuración. Para crear un grupo de nodos autogestionado, pasa a o. --managed=false
eksctl create cluster
eksctl create nodegroup
Consideraciones
-
Al crear clústeres en
us-east-1
, es posible que encuentres un.UnsupportedAvailabilityZoneException
Si esto sucede, copia las zonas sugeridas y pasa la--zones
bandera, por ejemplo:eksctl create cluster --region=us-east-1 --zones=us-east-1a,us-east-1b,us-east-1d
. Este problema puede ocurrir en otras regiones, pero es menos común. En la mayoría de los casos, no necesitarás usar la--zone
bandera.
Cree un clúster mediante el archivo de configuración
Puede crear un clúster mediante un archivo de configuración en lugar de indicadores.
Primero, crea cluster.yaml
el archivo:
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: basic-cluster region: eu-north-1 nodeGroups: - name: ng-1 instanceType: m5.large desiredCapacity: 10 volumeSize: 80 ssh: allow: true # will use ~/.ssh/id_rsa.pub as the default ssh key - name: ng-2 instanceType: m5.xlarge desiredCapacity: 2 volumeSize: 100 ssh: publicKeyPath: ~/.ssh/ec2_id_rsa.pub
A continuación, ejecuta este comando:
eksctl create cluster -f cluster.yaml
Esto creará un clúster tal y como se describe.
Si necesitabas usar una VPC existente, puedes usar un archivo de configuración como este:
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster-in-existing-vpc region: eu-north-1 vpc: subnets: private: eu-north-1a: { id: subnet-0ff156e0c4a6d300c } eu-north-1b: { id: subnet-0549cdab573695c03 } eu-north-1c: { id: subnet-0426fb4a607393184 } nodeGroups: - name: ng-1-workers labels: { role: workers } instanceType: m5.xlarge desiredCapacity: 10 privateNetworking: true - name: ng-2-builders labels: { role: builders } instanceType: m5.2xlarge desiredCapacity: 2 privateNetworking: true iam: withAddonPolicies: imageBuilder: true
El nombre del clúster o del grupo de nodos debe contener únicamente caracteres alfanuméricos (distingue mayúsculas de minúsculas) y guiones. Debe empezar con un carácter alfabético y no puede superar los 128 caracteres o recibirá un error de validación. Para obtener más información, consulte Crear una pila desde la CloudFormation consola en la guía del usuario de AWS CLoud Formation.
Actualice kubeconfig para un nuevo clúster
Una vez creado el clúster, se añadirá la configuración de kubernetes adecuada a tu archivo kubeconfig. Es el archivo que configuraste en la variable de entorno o de forma predeterminada. KUBECONFIG
~/.kube/config
La ruta al archivo kubeconfig se puede anular con la marca. --kubeconfig
Otros indicadores que pueden cambiar la forma en que se escribe el archivo kubeconfig:
marca | type | usar | valor predeterminado |
---|---|---|---|
--kubeconfig |
cadena |
ruta para escribir kubeconfig (incompatible con --auto-kubeconfig) |
$KUBECONFIG o ~/.kube/config |
--set-kubeconfig-context |
bool |
si es verdadero, el contexto actual se establecerá en kubeconfig; si un contexto ya está establecido, se sobrescribirá |
true |
--configuración automática de kube |
bool |
guarde el archivo kubeconfig por nombre de clúster |
true |
--write-kubeconfig |
bool |
alternar la escritura de kubeconfig |
true |
Eliminación de un clúster
Para eliminar este clúster, ejecuta:
eksctl delete cluster -f cluster.yaml
aviso
Use la --wait
marca con las operaciones de eliminación para asegurarse de que los errores de eliminación se notifiquen correctamente.
Sin la --wait
marca, eksctl solo emitirá una operación de eliminación en la CloudFormation pila del clúster y no esperará a que se elimine. En algunos casos, los recursos de AWS que utilizan el clúster o su VPC pueden provocar un error al eliminar el clúster. Si se produce un error al eliminar o si se olvida del indicador de espera, puede que tenga que ir a la CloudFormation GUI y eliminar las pilas eks desde allí.
aviso
Las políticas de PDB pueden bloquear la eliminación de nodos durante la eliminación del clúster.
Al eliminar un clúster con grupos de nodos, las políticas de Pod Disruption Budget (PDB) pueden impedir que los nodos se eliminen correctamente. Por ejemplo, los clústeres que están aws-ebs-csi-driver
instalados suelen tener dos módulos con una política de PDB que permite que solo un módulo no esté disponible a la vez, por lo que el otro no se puede desalojar durante la eliminación. Para eliminar correctamente el clúster en estos escenarios, usa la disable-nodegroup-eviction
marca para omitir las comprobaciones de las políticas de PDB:
eksctl delete cluster -f cluster.yaml --disable-nodegroup-eviction
Consulta el examples/
Funcionamiento en seco
La función de ejecución en seco permite generar un ClusterConfig archivo que omite la creación del clúster y genera un ClusterConfig archivo que representa las opciones de CLI suministradas y contiene los valores predeterminados establecidos por eksctl.
Puede encontrar más información en la página de ensayo en seco.