Bantu tingkatkan halaman ini
Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat grup simpul terkelola
Topik ini menjelaskan bagaimana Anda dapat meluncurkan grup node terkelola Amazon EKS dari node yang mendaftar dengan kluster Amazon EKS Anda. Setelah node bergabung dengan cluster, Anda dapat menyebarkan Kubernetes aplikasi ke mereka.
Jika ini adalah pertama kalinya Anda meluncurkan grup simpul terkelola Amazon EKS, kami sarankan Anda mengikuti salah satu panduan Memulai dengan Amazon EKS kami sebagai gantinya. Panduan tersebut memberi petunjuk untuk membuat klaster Amazon EKS dengan simpul.
-
Simpul Amazon EKS adalah instans Amazon EC2 standar. Anda dikenakan biaya berdasarkan harga normal Amazon EC2. Untuk informasi selengkapnya, lihat Harga Amazon EC2.
-
Anda tidak dapat membuat node terkelola di Wilayah AWS mana Anda memiliki AWS Outposts, AWS Wavelength, atau AWS Local Zones diaktifkan. Anda dapat membuat node yang dikelola sendiri di Wilayah AWS tempat Anda mengaktifkan AWS Outposts, atau AWS Wavelength, Local Zones. Untuk informasi lebih lanjut, lihat Meluncurkan simpul Amazon Linux yang dikelola sendiri, , dan Meluncurkan node yang dikelola sendiri Bottlerocket. Anda juga dapat membuat grup node Amazon Linux yang dikelola sendiri di Outpost. Untuk informasi selengkapnya, lihat Meluncurkan node Amazon Linux yang dikelola sendiri di Outpost.
-
Jika Anda tidak menentukan ID AMI untuk bootstrap.sh
file yang disertakan dengan Linux atau Bottlerocket yang dioptimalkan Amazon EKS, grup node terkelola menerapkan angka maksimum pada nilai. maxPods
Untuk contoh dengan kurang dari 30 vCPU, jumlah maksimumnya adalah. 110
Untuk contoh dengan lebih dari 30 vCPU, jumlah maksimum melompat ke. 250
Angka-angka ini didasarkan pada ambang Kubernetes skalabilitas dan pengaturan yang direkomendasikan oleh pengujian tim skalabilitas Amazon EKS internal. Untuk informasi selengkapnya, lihat plugin Amazon VPC CNI meningkatkan pod per node membatasi posting blog.
Anda dapat membuat grup simpul terkelola dengan eksctl
atau AWS Management Console.
- eksctl
-
Untuk membuat grup simpul terkelola dengan eksctl
Prosedur ini membutuhkan eksctl
versi 0.184.0
atau yang lebih baru. Anda dapat memeriksa versi Anda dengan perintah berikut:
eksctl version
Untuk petunjuk tentang cara menginstal atau meningkatkaneksctl
, lihat Instalasi dalam eksctl
dokumentasi.
-
(Opsional) Jika kebijakan IAM terkelola Amazoneks_CNI_Policy dilampirkan pada kebijakan IAM Anda, kami sarankan untuk menetapkannya ke peran IAM yang IAM role simpul Amazon EKS Anda kaitkan ke akun layanan sebagai gantinya. Kubernetes aws-node
Untuk informasi selengkapnya, lihat Mengkonfigurasi Amazon VPC CNI plugin for Kubernetes untuk menggunakan peran IAM untuk akun layanan (IRSA).
-
Buat grup node terkelola dengan atau tanpa menggunakan templat peluncuran kustom. Menentukan template peluncuran secara manual memungkinkan kustomisasi grup node yang lebih besar. Misalnya, ini dapat memungkinkan penerapan AMI khusus atau memberikan argumen ke boostrap.sh
skrip di AMI Amazon EKS yang dioptimalkan. Untuk daftar lengkap setiap opsi yang tersedia dan default, masukkan perintah berikut.
eksctl create nodegroup --help
Dalam perintah berikut, ganti my-cluster
dengan nama cluster Anda dan ganti my-mng
dengan nama grup node Anda. Nama grup node tidak boleh lebih dari 63 karakter. Itu harus dimulai dengan huruf atau digit, tetapi juga dapat menyertakan tanda hubung dan garis bawah untuk karakter yang tersisa.
Jika Anda tidak menggunakan templat peluncuran kustom saat pertama kali membuat grup node terkelola, jangan gunakan satu di lain waktu untuk grup node. Jika Anda tidak menentukan templat peluncuran kustom, sistem akan secara otomatis membuat templat peluncuran yang tidak kami sarankan agar Anda memodifikasi secara manual. Memodifikasi templat peluncuran yang dibuat secara otomatis ini secara manual dapat menyebabkan kesalahan.
- Tanpa template peluncuran
-
eksctl
membuat template peluncuran Amazon EC2 default di akun Anda dan menyebarkan grup node menggunakan templat peluncuran yang dibuat berdasarkan opsi yang Anda tentukan. Sebelum menentukan nilai untuk--node-type
, lihatMemilih jenis instans Amazon EC2.
Ganti ami-family
dengan kata kunci yang diizinkan. Untuk informasi selengkapnya, lihat Menyetel simpul AMI Family dalam eksctl
dokumentasi. Ganti my-key
dengan nama pasangan kunci atau kunci publik Amazon EC2 Anda. Kunci ini digunakan untuk SSH ke simpul Anda setelah diluncurkan.
UntukWindows, perintah ini tidak mengaktifkan SSH. Sebagai gantinya, ini mengaitkan key pair Amazon EC2 Anda dengan instans dan memungkinkan Anda untuk RDP ke instans.
Jika Anda belum memiliki pasangan kunci Amazon EC2, maka Anda dapat membuatnya di AWS Management Console. Untuk Linux selengkapnya, lihat pasangan kunci dan Linux instans Amazon EC2 di Panduan Pengguna Amazon EC2. Untuk Windows selengkapnya, lihat pasangan kunci dan Windows instans Amazon EC2 di Panduan Pengguna Amazon EC2.
Kami merekomendasikan memblokir Pod akses ke IMDS jika kondisi berikut benar:
Anda berencana untuk menetapkan peran IAM ke semua akun Kubernetes layanan Anda sehingga Pods hanya memiliki izin minimum yang mereka butuhkan.
Tidak ada Pods di klaster yang memerlukan akses ke layanan metadata instans Amazon EC2 (IMDS) karena alasan lain, seperti mengambil arus. Wilayah AWS
Untuk informasi selengkapnya, lihat Membatasi akses ke profil instance yang ditetapkan ke node pekerja.
Jika Anda ingin memblokir Pod akses ke IMDS, tambahkan --disable-pod-imds
opsi ke perintah berikut.
eksctl create nodegroup \
--cluster my-cluster
\
--region region-code
\
--name my-mng
\
--node-ami-family ami-family
\
--node-type m5.large
\
--nodes 3
\
--nodes-min 2
\
--nodes-max 4
\
--ssh-access \
--ssh-public-key my-key
Instance Anda secara opsional dapat menetapkan jumlah alamat IP yang jauh lebih tinggiPods, menetapkan alamat IP Pods dari blok CIDR yang berbeda dari instans, dan digunakan ke cluster tanpa akses internet. Untuk informasi selengkapnyaTingkatkan jumlah alamat IP yang tersedia untuk node Amazon EC2 Anda, lihatJaringan khusus untuk pod,, dan Menyebarkan kluster pribadi dengan akses internet terbatas untuk opsi tambahan untuk ditambahkan ke perintah sebelumnya.
Grup node terkelola menghitung dan menerapkan satu nilai untuk jumlah maksimum Pods yang dapat dijalankan pada setiap node grup node Anda, berdasarkan jenis instance. Jika Anda membuat grup node dengan tipe instance yang berbeda, nilai terkecil yang dihitung di semua jenis instance diterapkan sebagai jumlah maksimum Pods yang dapat dijalankan pada setiap jenis instance dalam grup node. Grup node terkelola menghitung nilai menggunakan skrip yang direferensikan di. Amazon EKS merekomendasikan maksimum Pods untuk setiap jenis instans Amazon EC2
- Dengan template peluncuran
-
Template peluncuran harus sudah ada dan harus memenuhi persyaratan yang ditentukan dalamLuncurkan dasar-dasar konfigurasi templat.
Kami merekomendasikan memblokir Pod akses ke IMDS jika kondisi berikut benar:
Anda berencana untuk menetapkan peran IAM ke semua akun Kubernetes layanan Anda sehingga Pods hanya memiliki izin minimum yang mereka butuhkan.
Tidak ada Pods di klaster yang memerlukan akses ke layanan metadata instans Amazon EC2 (IMDS) karena alasan lain, seperti mengambil arus. Wilayah AWS
Untuk informasi selengkapnya, lihat Membatasi akses ke profil instance yang ditetapkan ke node pekerja.
Jika Anda ingin memblokir Pod akses ke IMDS, maka tentukan pengaturan yang diperlukan dalam template peluncuran.
-
Salin konten berikut ke perangkat Anda. Ganti example
values
dan kemudian jalankan perintah yang dimodifikasi untuk membuat eks-nodegroup.yaml
file. Beberapa pengaturan yang Anda tentukan saat men-deploy tanpa templat peluncuran dipindahkan ke templat peluncuran. Jika Anda tidak menentukan versi version
, maka versi default templat akan digunakan.
cat >eks-nodegroup.yaml <<EOF
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-cluster
region: region-code
managedNodeGroups:
- name: my-mng
launchTemplate:
id: lt-id
version: "1
"
EOF
Untuk daftar selengkapnya tentang eksctl
pengaturan file konfigurasi, lihat Skema file Config di dokumentasi eksctl
. Instance Anda secara opsional dapat menetapkan jumlah alamat IP yang jauh lebih tinggiPods, menetapkan alamat IP Pods dari blok CIDR yang berbeda dari instans, menggunakan containerd
runtime, dan digunakan ke cluster tanpa akses internet keluar. Untuk informasi selengkapnyaTingkatkan jumlah alamat IP yang tersedia untuk node Amazon EC2 Anda, lihat Jaringan khusus untuk podUji migrasi dari Docker ke containerd,,, dan Menyebarkan kluster pribadi dengan akses internet terbatas untuk opsi tambahan untuk ditambahkan ke file konfigurasi.
Jika Anda tidak menentukan ID AMI dalam template peluncuran, grup node terkelola menghitung dan menerapkan satu nilai untuk jumlah maksimum Pods yang dapat dijalankan pada setiap node grup node Anda, berdasarkan jenis instance. Jika Anda membuat grup node dengan tipe instance yang berbeda, nilai terkecil yang dihitung di semua jenis instance diterapkan sebagai jumlah maksimum Pods yang dapat dijalankan pada setiap jenis instance dalam grup node. Grup node terkelola menghitung nilai menggunakan skrip yang direferensikan di. Amazon EKS merekomendasikan maksimum Pods untuk setiap jenis instans Amazon EC2
Jika Anda menetapkan ID AMI di template peluncuran, tentukan jumlah maksimum Pods yang dapat dijalankan pada setiap node grup node jika Anda menggunakan jaringan khusus atau ingin menambah jumlah alamat IP yang ditetapkan ke instans Anda. Untuk informasi selengkapnya, lihat Amazon EKS merekomendasikan maksimum Pods untuk setiap jenis instans Amazon EC2.
-
Men-deploy grup simpul dengan perintah berikut.
eksctl create nodegroup --config-file eks-nodegroup.yaml
- AWS Management Console
-
Untuk membuat grup node terkelola menggunakan AWS Management Console
-
Tunggu status klaster Anda ditampilkan sebagai ACTIVE
. Anda tidak dapat membuat grup node terkelola untuk klaster yang belum adaACTIVE
.
Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home#/clusters.
-
Pilih nama cluster tempat Anda ingin membuat grup node terkelola.
-
Pilih tab Compute.
-
Pilih Tambahkan grup simpul.
-
Pada halaman Konfigurasi grup simpul, isi parameter yang sesuai, dan kemudian pilih Selanjutnya.
-
Nama — Masukkan nama unik untuk grup simpul terkelola Anda. Nama grup node tidak boleh lebih dari 63 karakter. Itu harus dimulai dengan huruf atau digit, tetapi juga dapat menyertakan tanda hubung dan garis bawah untuk karakter yang tersisa.
-
Peran IAM Node — Pilih peran instance node yang akan digunakan dengan grup node Anda. Untuk informasi selengkapnya, lihat IAM role simpul Amazon EKS.
-
Anda tidak dapat menggunakan peran yang sama yang digunakan untuk membuat cluster apa pun.
-
Sebaiknya gunakan peran yang saat ini tidak digunakan oleh grup node yang dikelola sendiri. Jika tidak, Anda berencana untuk menggunakan dengan grup node yang dikelola sendiri yang baru. Untuk informasi selengkapnya, lihat Menghapus grup simpul terkelola.
-
Gunakan template peluncuran - (Opsional) Pilih jika Anda ingin menggunakan template peluncuran yang ada. Pilih Nama Template Luncurkan. Kemudian, pilih versi Template Luncurkan. Jika Anda tidak memilih versi, maka Amazon EKS menggunakan versi default templat. Template peluncuran memungkinkan lebih banyak penyesuaian grup node Anda, seperti memungkinkan Anda untuk menerapkan AMI kustom, menetapkan jumlah alamat IP yang jauh lebih tinggiPods, menetapkan alamat IP dari blok CIDR yang berbeda Pods dari instans, mengaktifkan containerd
runtime untuk instans Anda, dan menyebarkan node ke cluster tanpa akses internet keluar. Untuk informasi lebih lanjut, lihat Tingkatkan jumlah alamat IP yang tersedia untuk node Amazon EC2 Anda, Jaringan khusus untuk pod, Uji migrasi dari Docker ke containerd, dan Menyebarkan kluster pribadi dengan akses internet terbatas .
Templat peluncuran harus memenuhi persyaratan di Menyesuaikan node terkelola dengan template peluncuran. Jika Anda tidak menggunakan templat peluncuran Anda sendiri, API Amazon EKS membuat templat peluncuran Amazon EC2 default di akun Anda dan men-deploy grup simpul menggunakan templat peluncuran default.
Jika Anda menerapkan peran IAM untuk akun layanan, menetapkan izin yang diperlukan secara langsung ke setiap Pod yang memerlukan akses ke AWS
layanan, dan tidak ada Pods di klaster Anda yang memerlukan akses ke IMDS karena alasan lain, seperti mengambil saat ini Wilayah AWS, maka Anda juga dapat menonaktifkan akses ke IMDS untuk Pods itu jangan gunakan jaringan host dalam template peluncuran. Untuk informasi selengkapnya, lihat Membatasi akses ke profil instance yang ditetapkan ke node pekerja.
-
Kuberneteslabel — (Opsional) Anda dapat memilih untuk menerapkan Kubernetes label ke node di grup node terkelola Anda.
-
Kubernetestaints — (Opsional) Anda dapat memilih untuk menerapkan Kubernetes taints ke node di grup node terkelola Anda. Pilihan yang tersedia di menu Effect adalahNoSchedule
,NoExecute
, danPreferNoSchedule
. Untuk informasi selengkapnya, lihat Noda simpul pada grup simpul terkelola.
-
Tanda – (Opsional) Anda dapat memilih untuk menandai grup simpul terkelola Amazon EKS Anda. Tag ini tidak menyebar ke sumber daya lain di grup node, seperti grup Auto Scaling atau instance. Untuk informasi selengkapnya, lihat Mengatur sumber daya Amazon EKS dengan tag.
-
Pada halaman Atur konfigurasi komputasi dan penskalaan, isi parameter yang sesuai, dan kemudian pilih Selanjutnya.
-
Jenis AMI - Pilih tipe AMI. Jika Anda menerapkan instance Arm, pastikan untuk meninjau pertimbangan sebelum menerapkan. Amazon EKS mengoptimalkan AMI Arm Amazon Linux
Jika Anda menentukan template peluncuran di halaman sebelumnya, dan menetapkan AMI di template peluncuran, maka Anda tidak dapat memilih nilai. Nilai dari templat ditampilkan. AMI yang ditentukan dalam template harus memenuhi persyaratan diMenentukan AMI.
-
Tipe kapasitas – Pilih tipe kapasitas. Untuk informasi selengkapnya tentang memilih tipe kapasitas, lihat Tipe kapasitas grup simpul terkelola. Anda tidak dapat mencampur tipe kapasitas yang berbeda dalam grup node yang sama. Jika Anda ingin menggunakan kedua tipe kapasitas, buatlah grup simpul terpisah, masing-masing dengan tipe kapasitas dan instans mereka sendiri.
-
Jenis instans - Secara default, satu atau lebih jenis instance ditentukan. Untuk menghapus tipe instans default, pilih X
di sisi kanan tipe instans. Pilih tipe instans yang akan digunakan dalam grup simpul terkelola. Untuk informasi selengkapnya, lihat Memilih jenis instans Amazon EC2.
Konsol menampilkan satu set tipe instans yang umum digunakan. Jika Anda perlu membuat grup node terkelola dengan tipe instans yang tidak ditampilkaneksctl
, gunakan AWS CLI, AWS CloudFormation, atau SDK untuk membuat grup node. Jika Anda menentukan template peluncuran pada halaman sebelumnya, maka Anda tidak dapat memilih nilai karena jenis instance harus ditentukan dalam template peluncuran. Nilai dari templat peluncuran ditampilkan. Jika Anda memilih jenis Spot untuk Kapasitas, sebaiknya tentukan beberapa jenis instans untuk meningkatkan ketersediaan.
-
Ukuran disk — Masukkan ukuran disk (dalam GiB) untuk digunakan untuk volume root simpul Anda.
Jika Anda menentukan template peluncuran di halaman sebelumnya, maka Anda tidak dapat memilih nilai karena harus ditentukan dalam template peluncuran.
-
Ukuran yang diinginkan – Tentukan jumlah simpul yang harus dipertahankan oleh grup simpul terkelola saat peluncuran.
Amazon EKS tidak secara otomatis menskalakan grup node Anda masuk atau keluar. Namun, Anda dapat mengonfigurasi Kubernetes Cluster Autoscaler untuk melakukan ini untuk Anda.
-
Ukuran minimum – Tentukan jumlah simpul minimum yang dapat diskalakan kedalam oleh grup simpul terkelola.
-
Ukuran maksimum – Tentukan jumlah simpul maksimum yang dapat diskalakan keluar oleh grup simpul terkelola.
-
Konfigurasi pembaruan grup node — (Opsional) Anda dapat memilih jumlah atau persentase node yang akan diperbarui secara paralel. Node ini tidak akan tersedia selama pembaruan. Untuk Maksimum tidak tersedia, pilih salah satu opsi berikut dan tentukan Nilai:
-
Angka — Pilih dan tentukan jumlah node dalam grup node Anda yang dapat diperbarui secara paralel.
-
Persentase — Pilih dan tentukan persentase node dalam grup node Anda yang dapat diperbarui secara paralel. Ini berguna jika Anda memiliki sejumlah besar node di grup node Anda.
-
Di halaman Tentukan jaringan, isi parameter yang sesuai, dan pilih Selanjutnya.
-
Subnet — Pilih subnet untuk meluncurkan simpul terkelola Anda.
Jika Anda menjalankan aplikasi stateful di beberapa Availability Zone yang didukung oleh volume Amazon EBS dan menggunakan KubernetesKomputasi klaster skala dengan Karpenter dan Cluster Autoscaler, Anda harus mengonfigurasi beberapa grup node, masing-masing dicakup ke satu Availability Zone. Selain itu, Anda harus mengaktifkan fitur --balance-similar-node-groups
.
-
Jika Anda memilih subnet publik, dan klaster Anda hanya memiliki titik akhir server API publik yang diaktifkan, maka subnet harus mengatur MapPublicIPOnLaunch
ke true
agar instans dapat bergabung dengan klaster. Jika subnet dibuat menggunakan eksctl
atau AWS CloudFormation templat yang dijual Amazon EKS pada atau setelah 26 Maret 2020, maka pengaturan ini sudah diatur ke true
. Jika subnet dibuat dengan eksctl
atau AWS CloudFormation templat sebelum 26 Maret 2020, maka Anda perlu mengubah pengaturan secara manual. Untuk informasi selengkapnya, lihat Memodifikasi atribut IPv4
pengalamatan publik untuk subnet Anda.
-
Jika Anda menggunakan templat peluncuran dan menentukan beberapa antarmuka jaringan, Amazon EC2 tidak akan menetapkan alamat IPv4
publik secara otomatis, meskipun MapPublicIpOnLaunch
disetel ke. true
Untuk simpul yang akan bergabung dengan klaster dalam skenario ini, maka Anda harus mengaktifkan titik akhir server API privat klaster Anda atau meluncurkan simpul dalam subnet privat dengan akses internet keluar yang disediakan melalui metode alternatif, seperti Gateway NAT. Untuk informasi selengkapnya, lihat Pengalamatan IP instans Amazon EC2 di Panduan Pengguna Amazon EC2.
-
Konfigurasikan akses SSH ke node (Opsional). Mengaktifkan SSH mengizinkan Anda untuk tekoneksi ke instans dan mengumpulkan informasi diagnostik jika ada masalah. Kami sangat menyarankan untuk mengaktifkan akses jarak jauh saat Anda membuat grup node. Anda tidak dapat mengaktifkan akses jarak jauh setelah grup node dibuat.
Jika Anda memilih untuk menggunakan templat peluncuran, maka opsi ini tidak ditampilkan. Untuk mengaktifkan akses jarak jauh ke simpul Anda, tentukan pasangan kunci di templat peluncuran dan pastikan bahwa port yang tepat terbuka untuk simpul dalam grup keamanan yang Anda tentukan di templat peluncuran. Untuk informasi selengkapnya, lihat Menggunakan grup keamanan kustom.
UntukWindows, perintah ini tidak mengaktifkan SSH. Sebagai gantinya, ini mengaitkan key pair Amazon EC2 Anda dengan instans dan memungkinkan Anda untuk RDP ke instans.
-
Untuk pasangan kunci SSH (Opsional), pilih kunci SSH Amazon EC2 untuk digunakan. Untuk Linux selengkapnya, lihat pasangan kunci dan Linux instans Amazon EC2 di Panduan Pengguna Amazon EC2. Untuk Windows selengkapnya, lihat pasangan kunci dan Windows instans Amazon EC2 di Panduan Pengguna Amazon EC2. Jika Anda memilih untuk menggunakan templat peluncuran, maka Anda tidak dapat memilih templat lain. Ketika kunci SSH Amazon EC2 disediakan untuk grup node yang menggunakan Bottlerocket AMI, penampung administratif juga diaktifkan. Untuk informasi selengkapnya, lihat Kontainer admin diGitHub.
-
Untuk Izinkan akses jarak jauh SSH dari, jika Anda ingin membatasi akses ke instance tertentu, pilih grup keamanan yang terkait dengan instance tersebut. Jika Anda tidak memilih grup keamanan tertentu, maka akses SSH diizinkan dari mana saja di internet (0.0.0.0/0
).
-
Pada halaman Tinjau dan buat, tinjau konfigurasi grup simpul terkelola dan pilih Buat.
Jika simpul gagal untuk bergabung dengan klaster, maka lihat Simpul gagal untuk bergabung dengan klaster di panduan Pemecahan Masalah.
-
Perhatikan status simpul Anda dan tunggu sampai simpul mencapai Status Ready
.
kubectl get nodes --watch
-
(Hanya node GPU) Jika Anda memilih jenis instans GPU dan AMI akselerasi Amazon EKS yang dioptimalkan, maka Anda harus menerapkan plugin perangkat NVIDIA untuk Kubernetes sebagai DaemonSet di cluster Anda. Ganti vX.X.X
dengan s-device-plugin versi NVIDIA/K8 yang Anda inginkan sebelum menjalankan perintah berikut.
kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/vX.X.X
/nvidia-device-plugin.yml
Sekarang setelah Anda memiliki kluster Amazon EKS yang berfungsi dengan node, Anda siap untuk mulai menginstal Kubernetes add-on dan menerapkan aplikasi ke cluster Anda. Topik dokumentasi berikut membantu Anda untuk memperluas fungsionalitas klaster Anda.