Membuat dan mengelola cluster - Panduan Pengguna Eksctl

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

Membuat dan mengelola cluster

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

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

  • Saat membuat cluster dius-east-1, Anda mungkin menemukan fileUnsupportedAvailabilityZoneException. 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

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 di panduan pengguna AWS CLoud Formation.

Perbarui kubeconfig untuk cluster baru

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

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

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 examples/direktori di GitHub repo eksctl untuk file konfigurasi sampel lainnya.

Lari Kering

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.