Membuat grup simpul terkelola - Amazon EKS

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.

penting
Prasyarat

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.

  1. (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).

  2. 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.

    penting

    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

    eksctlmembuat 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.

    catatan

    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.

    1. 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.

    2. 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
  1. Tunggu status klaster Anda ditampilkan sebagai ACTIVE. Anda tidak dapat membuat grup node terkelola untuk klaster yang belum adaACTIVE.

  2. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home#/clusters.

  3. Pilih nama cluster tempat Anda ingin membuat grup node terkelola.

  4. Pilih tab Compute.

  5. Pilih Tambahkan grup simpul.

  6. 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.

      penting
      • 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.

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

      catatan

      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.

  8. Di halaman Tentukan jaringan, isi parameter yang sesuai, dan pilih Selanjutnya.

    • Subnet — Pilih subnet untuk meluncurkan simpul terkelola Anda.

      penting

      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.

      penting
      • 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.

      catatan

      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).

  9. 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.

  10. Perhatikan status simpul Anda dan tunggu sampai simpul mencapai Status Ready.

    kubectl get nodes --watch
  11. (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.