Resep: Mencegah pod agar tidak dijadwalkan pada node tertentu - Amazon EKS

Bantu tingkatkan halaman ini

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

Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.

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

Resep: Mencegah pod agar tidak dijadwalkan pada node tertentu

Gambaran Umum

Node dengan prosesor khusus, seperti GPUs, bisa lebih mahal untuk dijalankan daripada node pada mesin standar. Untuk melindungi node ini dari beban kerja yang tidak memerlukan perangkat keras khusus, Anda dapat menggunakan taints Kubernetes. Taints menandai node untuk mengusir pod yang tidak memiliki toleransi yang cocok, memastikan hanya beban kerja yang kompatibel yang dijadwalkan. Untuk informasi selengkapnya, lihat Taints and Tolerations dalam dokumentasi Kubernetes.

Node taints Kubernetes dapat diterapkan ke grup node terkelola baru dan yang sudah ada menggunakan atau AWS Management Console melalui Amazon EKS API. Resep ini menunjukkan cara menerapkan taints ke grup node terkelola Amazon EKS menggunakan AWS CLI. Untuk informasi tentang membuat grup node dengan taint menggunakan AWS Management Console, lihatBuat grup node terkelola untuk klaster Anda.

Prasyarat

Langkah-langkah

Langkah 1: Buat grup simpul dengan taints

Gunakan aws eks create-nodegroup perintah untuk membuat grup node terkelola baru dengan taints. Contoh ini menerapkan taint dengan kuncidedicated, nilaigpuGroup, dan efekNO_SCHEDULE.

aws eks create-nodegroup \ --cli-input-json ' { "clusterName": "my-cluster", "nodegroupName": "node-taints-example", "subnets": [ "subnet-1234567890abcdef0", "subnet-abcdef01234567890", "subnet-021345abcdef67890" ], "nodeRole": "arn:aws: iam::111122223333:role/AmazonEKSNodeRole", "taints": [ { "key": "dedicated", "value": "gpuGroup", "effect": "NO_SCHEDULE" } ] }'

Untuk informasi dan contoh selengkapnya, lihat taint di dokumentasi referensi Kubernetes.

Langkah 2: Perbarui noda pada grup node yang ada

Gunakan perintah aws eks update-nodegroup-config AWS CLI untuk menambah, menghapus, atau mengganti taints untuk grup node terkelola.

aws eks update-nodegroup-config --cluster-name my-cluster --nodegroup-name node-taints-example --taints 'removeTaints=[{key=dedicated,value=gpuGroup,effect=NO_SCHEDULE}]'

Catatan

  • Taints dapat diperbarui setelah Anda membuat grup node menggunakan UpdateNodegroupConfig API.

  • Kunci cacat harus diawali dengan huruf atau angka. Ini dapat berisi huruf, angka, tanda hubung (-), periode (.), dan garis bawah (). _ Panjangnya bisa mencapai 63 karakter.

  • Secara opsional, kunci cacat dapat dimulai dengan prefiks subdomain DNS dan satu /. Jika dimulai dengan prefiks subdomain DNS, panjangnya bisa mencapai 253 karakter.

  • Nilai adalah opsional dan harus diawali dengan huruf atau angka. Ini dapat berisi huruf, angka, tanda hubung (-), periode (.), dan garis bawah (). _ Panjangnya bisa mencapai 63 karakter.

  • Saat menggunakan Kubernetes secara langsung atau AWS Management Console, efek taint harusNoSchedule,, atau. PreferNoSchedule NoExecute Namun, saat menggunakan AWS CLI atau API, efek taint harusNO_SCHEDULE,, PREFER_NO_SCHEDULE atau. NO_EXECUTE

  • Maksimal 50 taint diperbolehkan per grup node.

  • Jika taint yang dibuat menggunakan grup node terkelola dihapus secara manual dari node, maka Amazon EKS tidak menambahkan taints kembali ke node. Ini benar bahkan jika taints ditentukan dalam konfigurasi grup node terkelola.