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 de la 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 sencillo 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 CLI de AWS) con un grupo de nodos administrado que contenga dos nodos m5.large.
eksctl ahora crea un grupo de nodos administrado de forma predeterminada cuando no se usa un archivo de configuración. Para crear un grupo de nodos autogestionado, pase a o. --managed=false eksctl create cluster eksctl create nodegroup
Consideraciones
-
Al crear clústeres en
us-east-1, es posible que encuentres un.UnsupportedAvailabilityZoneExceptionSi esto sucede, copie las zonas sugeridas y pase la--zonesbandera, 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--zonebandera.
Crea un clúster usando el archivo de configuración
Puede crear un clúster utilizando un archivo de configuración en lugar de indicadores.
Primero, crea un cluster.yaml 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, ejecute este comando:
eksctl create cluster -f cluster.yaml
Esto creará un clúster 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 solo caracteres alfanuméricos (distinguen mayúsculas y minúsculas) y guiones. Debe empezar con un carácter alfabético y no puede superar los 128 caracteres, o recibirás un error de validación. Para obtener más información, consulte Crear una pila desde la CloudFormation consola en la guía del CLoudFormation usuario de AWS.
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 de 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 mediante 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 |
|
--establecer el contexto de kubeconfig |
bool |
si es verdadero, el contexto actual se establecerá en kubeconfig; si un contexto ya está establecido, se sobrescribirá |
true |
|
--auto-kubeconfig |
bool |
guarda el archivo kubeconfig por nombre de clúster |
true |
|
--write-kubeconfig |
bool |
alterna la escritura de kubeconfig |
true |
Eliminación de un clúster
Para eliminar este clúster, ejecuta:
eksctl delete cluster -f cluster.yaml
aviso
Utilice 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 para 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 en la eliminación del clúster. Si se produce un error al eliminar o si se olvida el 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 de un clúster.
Al eliminar un clúster con grupos de nodos, las políticas del Pod Disruption Budget (PDB) pueden impedir que los nodos se eliminen correctamente. Por ejemplo, los clústeres aws-ebs-csi-driver instalados suelen tener dos pods con una política de PDB que permite que solo un pod no esté disponible a la vez, lo que hace que el otro pod no se pueda desalojar durante la eliminación. Para eliminar correctamente el clúster en estos casos, utilice la disable-nodegroup-eviction marca para eludir las comprobaciones de las políticas de PDB:
eksctl delete cluster -f cluster.yaml --disable-nodegroup-eviction
Consulta el examples/
Ejecución 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 la CLI suministradas y contiene los valores predeterminados establecidos por eksctl.
Puede encontrar más información en la página de ejecución en seco. Funcionamiento en seco