View a markdown version of this page

Creación y administración de clústeres - Guía del usuario de Eksctl

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 enus-east-1, es posible que encuentres un. UnsupportedAvailabilityZoneException Si esto sucede, copie las zonas sugeridas y pase 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.

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/ directorio del GitHub repositorio de eksctl para ver más archivos de configuración de ejemplo.

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