

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
<a name="creating-and-managing-clusters"></a>

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
<a name="_creating_a_simple_cluster"></a>

Cree un clúster simple con el siguiente comando:

```
eksctl create cluster
```

Esto creará un clúster de EKS en la 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
<a name="_considerations"></a>
+ 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
<a name="_create_cluster_using_config_file"></a>

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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-parameters.html) en la guía del CLoudFormation usuario de AWS.

## Actualice kubeconfig para un nuevo clúster
<a name="_update_kubeconfig_for_new_cluster"></a>

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 | 
| --establecer contexto de configuración de kube | 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
<a name="_delete_cluster"></a>

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 [https://github.com/eksctl-io/eksctl/tree/master/examples](https://github.com/eksctl-io/eksctl/tree/master/examples)directorio del GitHub repositorio de eksctl para ver más ejemplos de archivos de configuración.

## Funcionamiento en seco
<a name="_dry_run"></a>

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.](dry-run.md)