

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat dan mengelola cluster
<a name="creating-and-managing-clusters"></a>

Topik ini mencakup cara membuat dan menghapus kluster EKS menggunakan Eksctl. Anda dapat membuat cluster dengan perintah CLI, atau dengan membuat file YAMM konfigurasi cluster.

## Membuat cluster sederhana
<a name="_creating_a_simple_cluster"></a>

Buat cluster sederhana dengan perintah berikut:

```
eksctl create cluster
```

Itu akan membuat cluster EKS di wilayah default Anda (seperti yang ditentukan oleh konfigurasi AWS CLI Anda) dengan satu nodegroup terkelola yang berisi dua node m5.large.

eksctl sekarang membuat nodegroup terkelola secara default ketika file konfigurasi tidak digunakan. Untuk membuat nodegroup yang dikelola sendiri, teruskan `--managed=false` ke atau. `eksctl create cluster` `eksctl create nodegroup`

### Pertimbangan-pertimbangan
<a name="_considerations"></a>
+ Saat membuat cluster di`us-east-1`, Anda mungkin menemukan file`UnsupportedAvailabilityZoneException`. Jika ini terjadi, salin zona yang disarankan dan berikan `--zones` bendera, misalnya:`eksctl create cluster --region=us-east-1 --zones=us-east-1a,us-east-1b,us-east-1d`. Masalah ini dapat terjadi di daerah lain tetapi kurang umum. Dalam kebanyakan kasus, Anda tidak perlu menggunakan `--zone` bendera.

## Buat cluster menggunakan file konfigurasi
<a name="_create_cluster_using_config_file"></a>

Anda dapat membuat cluster menggunakan file konfigurasi alih-alih flag.

Pertama, buat `cluster.yaml` file:

```
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
```

Selanjutnya, jalankan perintah ini:

```
eksctl create cluster -f cluster.yaml
```

Ini akan membuat cluster seperti yang dijelaskan.

Jika Anda perlu menggunakan VPC yang ada, Anda dapat menggunakan file konfigurasi seperti ini:

```
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
```

Nama cluster atau nama nodegroup harus hanya berisi karakter alfanumerik (peka huruf besar/kecil) dan tanda hubung. Itu harus dimulai dengan karakter alfabet dan tidak dapat melebihi 128 karakter, atau Anda akan menerima kesalahan validasi. Untuk informasi selengkapnya, lihat [Membuat tumpukan dari CloudFormation konsol](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-parameters.html) di panduan CLoudFormation pengguna AWS.

## Perbarui kubeconfig untuk cluster baru
<a name="_update_kubeconfig_for_new_cluster"></a>

Setelah cluster dibuat, konfigurasi kubernetes yang sesuai akan ditambahkan ke file kubeconfig Anda. Ini adalah, file yang telah Anda konfigurasikan dalam variabel lingkungan `KUBECONFIG` atau secara `~/.kube/config` default. Path ke file kubeconfig dapat diganti menggunakan flag. `--kubeconfig`

Bendera lain yang dapat mengubah cara penulisan file kubeconfig:


| bendera | jenis | menggunakan | nilai default | 
| --- | --- | --- | --- | 
| --kubeconfig | string | jalur untuk menulis kubeconfig (tidak kompatibel dengan --auto-kubeconfig) | $KUBECONFIG atau \~/. kube/config | 
| --set-kubeconfig-konteks | bool | jika true maka konteks saat ini akan disetel di kubeconfig; jika konteks sudah disetel maka itu akan ditimpa | true | 
| --auto-kubeconfig | bool | simpan file kubeconfig dengan nama cluster | true | 
| --write-kubeconfig | bool | alihkan penulisan kubeconfig | true | 

## Hapus cluster
<a name="_delete_cluster"></a>

Untuk menghapus klaster ini, jalankan:

```
eksctl delete cluster -f cluster.yaml
```

**Awas**  
Gunakan `--wait` tanda dengan operasi penghapusan untuk memastikan kesalahan penghapusan dilaporkan dengan benar.

Tanpa `--wait` flag, eksctl hanya akan mengeluarkan operasi penghapusan ke CloudFormation tumpukan cluster dan tidak akan menunggu penghapusannya. Dalam beberapa kasus, sumber daya AWS yang menggunakan cluster atau VPC-nya dapat menyebabkan penghapusan klaster gagal. Jika penghapusan Anda gagal atau Anda lupa tanda tunggu, Anda mungkin harus pergi ke CloudFormation GUI dan menghapus tumpukan eks dari sana.

**Awas**  
Kebijakan PDB dapat memblokir penghapusan node selama penghapusan klaster.

Saat menghapus klaster dengan nodegroup, kebijakan Pod Disruption Budget (PDB) dapat mencegah node berhasil dihapus. Misalnya, cluster yang `aws-ebs-csi-driver` diinstal biasanya memiliki dua pod dengan kebijakan PDB yang memungkinkan hanya satu pod yang tidak tersedia pada satu waktu, membuat pod lainnya tidak dapat dievictable selama penghapusan. Agar berhasil menghapus klaster dalam skenario ini, gunakan `disable-nodegroup-eviction` tanda untuk melewati pemeriksaan kebijakan PDB:

```
eksctl delete cluster -f cluster.yaml --disable-nodegroup-eviction
```

Lihat [https://github.com/eksctl-io/eksctl/tree/master/examples](https://github.com/eksctl-io/eksctl/tree/master/examples)direktori di GitHub repo eksctl untuk file konfigurasi sampel lainnya.

## Lari Kering
<a name="_dry_run"></a>

Fitur dry-run memungkinkan menghasilkan ClusterConfig file yang melewatkan pembuatan cluster dan mengeluarkan ClusterConfig file yang mewakili opsi CLI yang disediakan dan berisi nilai default yang ditetapkan oleh eksctl.

Info lebih lanjut dapat ditemukan di halaman [Dry Run](dry-run.md).