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

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.