Menyesuaikan node terkelola dengan template peluncuran - 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.

Menyesuaikan node terkelola dengan template peluncuran

Untuk kustomisasi tingkat tertinggi, Anda dapat menerapkan node terkelola menggunakan template peluncuran Anda sendiri. Menggunakan template peluncuran memungkinkan kemampuan seperti berikut:

  • Berikan argumen bootstrap pada penerapan node, seperti kubeletargumen tambahan.

  • Tetapkan alamat IP Pods dari blok CIDR yang berbeda dari alamat IP yang ditetapkan ke node.

  • Terapkan AMI kustom Anda sendiri ke node.

  • Terapkan CNI kustom Anda sendiri ke node.

Saat Anda memberikan template peluncuran Anda sendiri saat pertama kali membuat grup node terkelola, Anda juga akan memiliki fleksibilitas yang lebih besar nanti. Selama Anda menerapkan grup node terkelola dengan templat peluncuran Anda sendiri, Anda dapat memperbaruinya secara berulang dengan versi berbeda dari template peluncuran yang sama. Saat Anda memperbarui grup node ke versi template peluncuran yang berbeda, semua node dalam grup didaur ulang agar sesuai dengan konfigurasi baru dari versi template peluncuran yang ditentukan.

Grup node terkelola selalu digunakan dengan template peluncuran untuk digunakan dengan grup Auto Scaling Amazon EC2. Jika Anda tidak menyediakan template peluncuran, Amazon EKS API membuatnya secara otomatis dengan nilai default di akun Anda. Namun, kami tidak menyarankan Anda memodifikasi templat peluncuran yang dibuat secara otomatis. Selain itu, grup node yang ada yang tidak menggunakan templat peluncuran kustom tidak dapat diperbarui secara langsung. Sebagai gantinya, Anda harus membuat grup node baru dengan template peluncuran khusus untuk melakukannya.

Luncurkan dasar-dasar konfigurasi templat

Anda dapat membuat template peluncuran Auto Scaling Amazon EC2 dengan AWS CLI,, atau AWS Management Console SDK. AWS Untuk informasi selengkapnya, lihat Membuat Template Peluncuran untuk grup Auto Scaling di Panduan Pengguna Auto Scaling Amazon EC2. Beberapa pengaturan dalam templat peluncuran mirip dengan pengaturan yang digunakan untuk konfigurasi simpul terkelola. Saat menerapkan atau memperbarui grup node dengan template peluncuran, beberapa pengaturan harus ditentukan baik dalam konfigurasi grup node atau template peluncuran. Jangan tentukan pengaturan di kedua tempat. Jika terdapat pengaturan yang seharusnya tidak ada, maka operasi seperti membuat atau memperbarui grup simpul akan gagal.

Tabel berikut mencantumkan pengaturan yang dilarang dalam template peluncuran. Ini juga mencantumkan pengaturan serupa, jika ada yang tersedia, yang diperlukan dalam konfigurasi grup node terkelola. Pengaturan yang tercantum adalah pengaturan yang muncul di konsol. Mereka mungkin memiliki nama yang mirip tetapi berbeda di AWS CLI dan SDK.

Peluncuran templat — Dilarang Konfigurasi grup simpul Amazon EKS
Subnet dalam Antarmuka Jaringan (Tambahkan antarmuka jaringan) Subnet di bawah konfigurasi jaringan grup Node pada halaman Tentukan jaringan
Profil instans IAM dalam Detail lanjutan Peran IAM node di bawah konfigurasi grup Node pada halaman grup Configure Node
Perilaku Shutdown dan Perilaku Berhenti - Hibernasi dalam Detail lanjutan. Pertahankan default Jangan sertakan dalam pengaturan templat peluncuran dalam templat peluncuran untuk kedua pengaturan. Tidak setara. Amazon EKS harus mengontrol siklus hidup instans, bukan grup Auto Scaling.

Tabel berikut mencantumkan pengaturan yang dilarang dalam konfigurasi grup node terkelola. Ini juga mencantumkan pengaturan serupa, jika ada yang tersedia, yang diperlukan dalam template peluncuran. Pengaturan yang tercantum adalah pengaturan yang muncul di konsol. Mereka mungkin memiliki nama yang mirip di AWS CLI dan SDK.

Konfigurasi grup simpul Amazon EKS - Dilarang Luncurkan templat

(Hanya jika Anda menetapkan AMI kustom dalam template peluncuran) Jenis AMI di bawah konfigurasi komputasi grup Node pada halaman konfigurasi Set komputasi dan penskalaan — Tampilan konsol Ditentukan dalam templat peluncuran dan ID AMI yang ditentukan.

Jika Gambar Aplikasi dan OS (Amazon Machine Image) tidak ditentukan dalam template peluncuran, Anda dapat memilih AMI dalam konfigurasi grup node.

Gambar Aplikasi dan OS (Gambar Mesin Amazon) di bawah Meluncurkan konten template - Anda harus menentukan ID jika Anda memiliki salah satu dari persyaratan berikut:

Ukuran disk di bawah konfigurasi komputasi grup Node pada Mengatur halaman konfigurasi komputasi dan penskalaan — Tampilan konsol Ditentukan dalam templat peluncuran. Ukuran dalam Penyimpanan (Volume) (Tambahkan volume baru). Anda harus menentukan ini dalam templat peluncuran.
SSH key pair di bawah konfigurasi grup Node pada halaman Specify Networking - Konsol menampilkan kunci yang ditentukan dalam template peluncuran atau menampilkan Tidak ditentukan dalam template peluncuran. Nama pasangan kunci dalam Pasangan kunci (login).
Anda tidak dapat menentukan grup keamanan sumber yang diizinkan akses jarak jauh saat menggunakan templat peluncuran. Grup keamanan dalam Pengaturan jaringan untuk instans atau Grup keamanan di bawah Antarmuka jaringan (Tambahkan antarmuka jaringan), tapi tidak keduanya. Untuk informasi selengkapnya, lihat Menggunakan grup keamanan kustom.
catatan
  • Jika Anda menerapkan grup node menggunakan template peluncuran, tentukan nol atau satu jenis Instance di bawah Meluncurkan konten template dalam template peluncuran. Atau, Anda dapat menentukan 0—20 jenis instans untuk tipe Instance di halaman Setel konfigurasi komputasi dan penskalaan di konsol. Atau, Anda dapat melakukannya menggunakan alat lain yang menggunakan Amazon EKS API. Jika Anda menentukan tipe instans dalam templat peluncuran, dan menggunakan templat peluncuran tersebut untuk men-deploy grup simpul Anda, maka Anda tidak dapat menentukan tipe instans apa pun di konsol atau menggunakan alat lain yang menggunakan Amazon EKS API. Jika Anda tidak menentukan jenis instance dalam template peluncuran, di konsol, atau menggunakan alat lain yang menggunakan Amazon EKS API, jenis t3.medium instance akan digunakan. Jika grup simpul Anda menggunakan tipe kapasitas Spot, sebaiknya tentukan beberapa tipe instans menggunakan konsol. Untuk informasi selengkapnya, lihat Tipe kapasitas grup simpul terkelola.

  • Jika kontainer apa pun yang Anda terapkan ke grup node menggunakan Layanan Metadata Instans Versi 2, pastikan untuk menetapkan batas hop respons Metadata ke 2 dalam template peluncuran Anda. Untuk informasi selengkapnya, lihat Metadata instans dan data pengguna di Panduan Pengguna Amazon EC2. Jika Anda menerapkan grup simpul terkelola tanpa menggunakan templat peluncuran kustom, nilai ini secara otomatis ditetapkan untuk grup simpul dalam templat peluncuran default.

Penandaan instans Amazon EC2

Anda dapat menggunakan parameter TagSpecification dari templat peluncuran untuk menentukan tanda mana yang akan diterapkan ke instans Amazon EC2 di grup simpul Anda. Entitas IAM yang memanggil CreateNodegroup atau UpdateNodegroupVersion API harus memiliki izin untuk ec2:RunInstances dan ec2:CreateTags, dan tanda harus ditambahkan ke templat peluncuran.

Menggunakan grup keamanan kustom

Anda dapat menggunakan templat peluncuran untuk menentukan Amazon EC2 kustom grup keamanan untuk diterapkan ke instans dalam grup simpul Anda. Ini dapat berupa parameter grup keamanan tingkat instans atau sebagai bagian dari parameter konfigurasi antarmuka jaringan. Namun, Anda tidak dapat membuat templat peluncuran yang menentukan tingkat instans dan grup keamanan antarmuka jaringan. Pertimbangkan kondisi yang berlaku berikut untuk menggunakan grup keamanan kustom dengan grup simpul terkelola:

  • Amazon EKS hanya mengizinkan templat peluncuran dengan spesifikasi antarmuka jaringan tunggal.

  • Secara default, Amazon EKS menerapkan grup keamanan klaster untuk instans dalam grup simpul Anda guna memfasilitasi komunikasi antara simpul dan pesawat kontrol. Jika Anda menentukan grup keamanan kustom di templat peluncuran menggunakan salah satu opsi yang disebutkan sebelumnya, Amazon EKS tidak menambahkan grup keamanan klaster. Jadi, Anda harus memastikan bahwa aturan masuk dan keluar dari grup keamanan Anda memungkinkan komunikasi dengan titik akhir klaster Anda. Jika aturan grup keamanan Anda salah, node pekerja tidak dapat bergabung dengan cluster. Untuk informasi selengkapnya tentang aturan grup keamanan, lihatPersyaratan dan pertimbangan grup keamanan Amazon EKS.

  • Jika Anda memerlukan akses SSH ke instance di grup node Anda, sertakan grup keamanan yang memungkinkan akses tersebut.

Data pengguna Amazon EC2

Template peluncuran mencakup bagian untuk data pengguna khusus. Anda dapat menentukan pengaturan konfigurasi untuk grup node Anda di bagian ini tanpa membuat AMI kustom individual secara manual. Untuk informasi selengkapnya tentang setelan yang tersediaBottlerocket, lihat Menggunakan data pengguna diGitHub.

Anda dapat menyediakan data pengguna Amazon EC2 di templat peluncuran menggunakan cloud-init saat meluncurkan instans Anda. Untuk informasi selengkapnya, lihat dokumentasi cloud-init. Data pengguna Anda dapat digunakan untuk melakukan operasi konfigurasi umum. Ini termasuk operasi berikut:

Data pengguna Amazon EC2 dalam template peluncuran yang digunakan dengan grup node terkelola harus dalam format arsip multi-bagian MIME untuk AMI Amazon Linux dan format TOMM untuk AMI. Bottlerocket Ini karena data pengguna Anda digabungkan dengan data pengguna Amazon EKS yang diperlukan simpul untuk bergabung dengan klaster. Jangan tentukan perintah apa pun dalam data pengguna Anda yang memulai atau memodifikasikubelet. Ini dilakukan sebagai bagian dari data pengguna yang digabungkan oleh Amazon EKS. Parameter kubelet tertentu, seperti pengaturan label pada simpul, dapat dikonfigurasi secara langsung melalui API grup simpul terkelola.

catatan

Untuk informasi selengkapnya tentang kubelet kustomisasi lanjutan, termasuk memulainya secara manual atau meneruskan parameter konfigurasi kustom, lihatMenentukan AMI. Jika ID AMI kustom ditentukan dalam template peluncuran, Amazon EKS tidak menggabungkan data pengguna.

Rincian berikut memberikan informasi lebih lanjut tentang bagian data pengguna.

Amazon Linux 2 user data

Anda dapat menggabungkan beberapa blok data pengguna menjadi satu file multi-bagian MIME. Misalnya, Anda dapat menggabungkan boothook cloud yang mengonfigurasi Docker daemon dengan skrip shell data pengguna yang menginstal paket khusus. File multi-bagian MIME terdiri dari komponen berikut:

  • Tipe konten dan deklarasi batas bagian – Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

  • Deklarasi versi MIME – MIME-Version: 1.0

  • Satu atau lebih blok data pengguna, yang berisi komponen berikut:

    • Batas pembukaan, yang menandakan awal dari blok data pengguna – --==MYBOUNDARY==

    • Deklarasi tipe konten untuk blok: Content-Type: text/cloud-config; charset="us-ascii". Untuk informasi selengkapnya, lihat dokumentasi cloud-init.

    • Isi data pengguna (misalnya, daftar perintah atau cloud-init arahan shell).

    • Batas penutupan, yang menandakan akhir dari file multi-bagian MIME: --==MYBOUNDARY==--

    Berikut ini adalah contoh file multi-bagian MIME yang dapat Anda gunakan untuk membuat milik Anda sendiri.

    MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash echo "Running custom user data script" --==MYBOUNDARY==--
Amazon Linux 2023 user data

Amazon Linux 2023 (AL2023) memperkenalkan proses inisialisasi node baru nodeadm yang menggunakan skema konfigurasi YAMB. Jika Anda menggunakan grup node yang dikelola sendiri atau AMI dengan template peluncuran, Anda sekarang harus menyediakan metadata klaster tambahan secara eksplisit saat membuat grup node baru. Contoh parameter minimum yang diperlukan adalah sebagai berikut, di manaapiServerEndpoint,certificateAuthority, dan layanan sekarang cidr diperlukan:

--- apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: my-cluster apiServerEndpoint: https://example.com certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk= cidr: 10.100.0.0/16

Anda biasanya akan mengatur konfigurasi ini dalam data pengguna Anda, baik apa adanya atau disematkan dalam dokumen multi-bagian MIME:

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="BOUNDARY" --BOUNDARY Content-Type: application/node.eks.aws --- apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: [...] --BOUNDARY--

Di AL2, metadata dari parameter ini ditemukan dari panggilan Amazon EKS DescribeCluster API. Dengan AL2023, perilaku ini telah berubah karena panggilan API tambahan berisiko melambat selama peningkatan skala node besar. Perubahan ini tidak memengaruhi Anda jika Anda menggunakan grup node terkelola tanpa templat peluncuran atau jika Anda menggunakanKarpenter. Untuk informasi selengkapnya tentang certificateAuthority dan layanancidr, lihat DescribeCluster di Referensi API Amazon EKS.

Bottlerocket user data

Bottlerocketstruktur data pengguna dalam format TOMB. Anda dapat memberikan data pengguna untuk digabungkan dengan data pengguna yang disediakan oleh Amazon EKS. Misalnya, Anda dapat memberikan kubelet pengaturan tambahan.

[settings.kubernetes.system-reserved] cpu = "10m" memory = "100Mi" ephemeral-storage= "1Gi"

Untuk informasi selengkapnya tentang pengaturan yang didukung, lihat Bottlerocketdokumentasi. Anda dapat mengonfigurasi label node dan taints dalam data pengguna Anda. Namun, kami menyarankan Anda mengonfigurasi ini dalam grup node Anda sebagai gantinya. Amazon EKS menerapkan konfigurasi ini saat Anda melakukannya.

Saat data pengguna digabungkan, pemformatan tidak dipertahankan, tetapi kontennya tetap sama. Konfigurasi yang Anda berikan dalam data pengguna akan mengesampingkan pengaturan apa pun yang dikonfigurasi oleh Amazon EKS. Jadi, jika Anda menetapkan settings.kubernetes.max-pods atausettings.kubernetes.cluster-dns-ip, nilai-nilai ini dalam data pengguna Anda diterapkan ke node.

Amazon EKS tidak mendukung semua TOMB yang valid. Berikut ini adalah daftar format yang tidak didukung yang diketahui:

  • Kutipan dalam kunci yang dikutip: 'quoted "value"' = "value"

  • Kutipan lolos dalam nilai: str = "I'm a string. \"You can quote me\""

  • Campuran pelampung dan bilangan bulat: numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ]

  • Jenis campuran dalam array: contributors = ["foo@example.com", { name = "Baz", email = "baz@example.com" }]

  • Header bertanda kurung dengan tombol yang dikutip: [foo."bar.baz"]

Windows user data

Data pengguna Windows menggunakan PowerShell perintah. Saat membuat grup node terkelola, data pengguna kustom Anda digabungkan dengan data pengguna terkelola Amazon EKS. PowerShellPerintah Anda didahulukan, diikuti oleh perintah data pengguna terkelola, semuanya dalam satu <powershell></powershell> tag.

catatan

Ketika tidak ada ID AMI yang ditentukan dalam template peluncuran, jangan gunakan skrip Bootstrap Windows Amazon EKS dalam data pengguna untuk mengonfigurasi Amazon EKS.

Contoh data pengguna adalah sebagai berikut.

<powershell> Write-Host "Running custom user data script" </powershell>

Menentukan AMI

Jika Anda memiliki salah satu dari persyaratan berikut, maka tentukan ID AMI di ImageId bidang template peluncuran Anda. Pilih persyaratan yang Anda miliki untuk informasi tambahan.

Bootstrapping adalah istilah yang digunakan untuk menggambarkan penambahan perintah yang dapat dijalankan ketika sebuah instance dimulai. Misalnya, bootstrap memungkinkan penggunaan argumen tambahan. kubelet Anda dapat meneruskan argumen ke bootstrap.sh skrip dengan menggunakan eksctl tanpa menentukan template peluncuran. Atau Anda dapat melakukannya dengan menentukan informasi di bagian data pengguna dari template peluncuran.

eksctl without specifying a launch template

Buat file bernama my-nodegroup.yaml dengan isi berikut ini. Ganti setiap example value dengan nilai-nilai Anda sendiri. --dns-cluster-ipArgumen --apiserver-endpoint--b64-cluster-ca,, dan bersifat opsional. Namun, mendefinisikannya memungkinkan bootstrap.sh skrip untuk menghindari describeCluster panggilan. Ini berguna dalam pengaturan cluster pribadi atau cluster tempat Anda sering menskalakan node masuk dan keluar. Untuk informasi lebih lanjut tentang bootstrap.sh skrip, lihat bootstrap.shfile diGitHub.

  • Satu-satunya argumen yang diperlukan adalah nama cluster (my-cluster).

  • Untuk mengambil ID AMI yang dioptimalkanami-1234567890abcdef0, Anda dapat menggunakan tabel di bagian berikut:

  • Untuk mengambil certificate-authority untuk cluster Anda, jalankan perintah berikut.

    aws eks describe-cluster --query "cluster.certificateAuthority.data" --output text --name my-cluster --region region-code
  • Untuk mengambil api-server-endpoint untuk cluster Anda, jalankan perintah berikut.

    aws eks describe-cluster --query "cluster.endpoint" --output text --name my-cluster --region region-code
  • Nilai untuk --dns-cluster-ip adalah CIDR layanan Anda dengan .10 di akhir. Untuk mengambil service-cidr untuk cluster Anda, jalankan perintah berikut. Misalnya, jika nilai yang dikembalikan adalahipv4 10.100.0.0/16, maka nilai Anda adalah10.100.0.10.

    aws eks describe-cluster --query "cluster.kubernetesNetworkConfig.serviceIpv4Cidr" --output text --name my-cluster --region region-code
  • Contoh ini memberikan kubelet argumen untuk menetapkan max-pods nilai kustom menggunakan bootstrap.sh skrip yang disertakan dengan AMI Amazon EKS yang dioptimalkan. 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. Untuk bantuan dalam memilihmy-max-pods-value, lihatAmazon EKS merekomendasikan maksimum Pods untuk setiap jenis instans Amazon EC2.

--- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code managedNodeGroups: - name: my-nodegroup ami: ami-1234567890abcdef0 instanceType: m5.large privateNetworking: true disableIMDSv1: true labels: { x86-al2-specified-mng } overrideBootstrapCommand: | #!/bin/bash /etc/eks/bootstrap.sh my-cluster \ --b64-cluster-ca certificate-authority \ --apiserver-endpoint api-server-endpoint \ --dns-cluster-ip service-cidr.10 \ --kubelet-extra-args '--max-pods=my-max-pods-value' \ --use-max-pods false

Untuk setiap opsi eksctl config file yang tersedia, lihat Skema file Config dalam dokumentasi. eksctl eksctlUtilitas masih membuat template peluncuran untuk Anda dan mengisi data penggunanya dengan data yang Anda berikan dalam config file.

Buat grup node dengan perintah berikut.

eksctl create nodegroup --config-file=my-nodegroup.yaml
User data in a launch template

Tentukan informasi berikut di bagian data pengguna dari template peluncuran Anda. Ganti setiap example value dengan nilai-nilai Anda sendiri. --dns-cluster-ipArgumen --apiserver-endpoint--b64-cluster-ca,, dan bersifat opsional. Namun, mendefinisikannya memungkinkan bootstrap.sh skrip untuk menghindari describeCluster panggilan. Ini berguna dalam pengaturan cluster pribadi atau cluster tempat Anda sering menskalakan node masuk dan keluar. Untuk informasi lebih lanjut tentang bootstrap.sh skrip, lihat bootstrap.shfile diGitHub.

  • Satu-satunya argumen yang diperlukan adalah nama cluster (my-cluster).

  • Untuk mengambil certificate-authority untuk cluster Anda, jalankan perintah berikut.

    aws eks describe-cluster --query "cluster.certificateAuthority.data" --output text --name my-cluster --region region-code
  • Untuk mengambil api-server-endpoint untuk cluster Anda, jalankan perintah berikut.

    aws eks describe-cluster --query "cluster.endpoint" --output text --name my-cluster --region region-code
  • Nilai untuk --dns-cluster-ip adalah CIDR layanan Anda dengan .10 di akhir. Untuk mengambil service-cidr untuk cluster Anda, jalankan perintah berikut. Misalnya, jika nilai yang dikembalikan adalahipv4 10.100.0.0/16, maka nilai Anda adalah10.100.0.10.

    aws eks describe-cluster --query "cluster.kubernetesNetworkConfig.serviceIpv4Cidr" --output text --name my-cluster --region region-code
  • Contoh ini memberikan kubelet argumen untuk menetapkan max-pods nilai kustom menggunakan bootstrap.sh skrip yang disertakan dengan AMI Amazon EKS yang dioptimalkan. Untuk bantuan dalam memilihmy-max-pods-value, lihatAmazon EKS merekomendasikan maksimum Pods untuk setiap jenis instans Amazon EC2.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash set -ex /etc/eks/bootstrap.sh my-cluster \ --b64-cluster-ca certificate-authority \ --apiserver-endpoint api-server-endpoint \ --dns-cluster-ip service-cidr.10 \ --kubelet-extra-args '--max-pods=my-max-pods-value' \ --use-max-pods false --==MYBOUNDARY==--

Bootstrapping adalah istilah yang digunakan untuk menggambarkan penambahan perintah yang dapat dijalankan ketika sebuah instance dimulai. Anda dapat meneruskan argumen ke Start-EKSBootstrap.ps1 skrip dengan menggunakan eksctl tanpa menentukan template peluncuran. Atau Anda dapat melakukannya dengan menentukan informasi di bagian data pengguna dari template peluncuran.

Jika Anda ingin menentukan ID Windows AMI kustom, ingatlah pertimbangan berikut:

  • Anda harus menggunakan template peluncuran dan memberikan perintah bootstrap yang diperlukan di bagian data pengguna. Untuk mengambil Windows ID yang Anda inginkan, Anda dapat menggunakan tabel diAmazon EKS dioptimalkan Windows AMI.

  • Ada beberapa batasan dan kondisi. Misalnya, Anda harus menambahkan eks:kube-proxy-windows ke peta konfigurasi AWS IAM Authenticator Anda. Untuk informasi selengkapnya, lihat Batas dan ketentuan saat menentukan ID AMI.

Tentukan informasi berikut di bagian data pengguna dari template peluncuran Anda. Ganti setiap example value dengan nilai-nilai Anda sendiri. -DNSClusterIPArgumen -APIServerEndpoint-Base64ClusterCA,, dan bersifat opsional. Namun, mendefinisikannya memungkinkan Start-EKSBootstrap.ps1 skrip untuk menghindari describeCluster panggilan.

  • Satu-satunya argumen yang diperlukan adalah nama cluster (my-cluster).

  • Untuk mengambil certificate-authority untuk cluster Anda, jalankan perintah berikut.

    aws eks describe-cluster --query "cluster.certificateAuthority.data" --output text --name my-cluster --region region-code
  • Untuk mengambil api-server-endpoint untuk cluster Anda, jalankan perintah berikut.

    aws eks describe-cluster --query "cluster.endpoint" --output text --name my-cluster --region region-code
  • Nilai untuk --dns-cluster-ip adalah CIDR layanan Anda dengan .10 di akhir. Untuk mengambil service-cidr untuk cluster Anda, jalankan perintah berikut. Misalnya, jika nilai yang dikembalikan adalahipv4 10.100.0.0/16, maka nilai Anda adalah10.100.0.10.

    aws eks describe-cluster --query "cluster.kubernetesNetworkConfig.serviceIpv4Cidr" --output text --name my-cluster --region region-code
  • Untuk argumen tambahan, lihatParameter konfigurasi skrip bootstrap.

    catatan

    Jika Anda menggunakan layanan khusus CIDR, maka Anda perlu menentukannya menggunakan -ServiceCIDR parameter. Jika tidak, resolusi DNS untuk Pods di cluster akan gagal.

<powershell> [string]$EKSBootstrapScriptFile = "$env:ProgramFiles\Amazon\EKS\Start-EKSBootstrap.ps1" & $EKSBootstrapScriptFile -EKSClusterName my-cluster ` -Base64ClusterCA certificate-authority ` -APIServerEndpoint api-server-endpoint ` -DNSClusterIP service-cidr.10 </powershell>

Untuk informasi selengkapnya, lihat Amazon Machine Image (AMI) di Panduan Pengguna Amazon EC2. Spesifikasi build Amazon EKS AMI berisi sumber daya dan skrip konfigurasi untuk membuat Amazon EKS AMI khusus berdasarkan Amazon Linux. Untuk informasi selengkapnya, lihat Amazon EKS AMI Build Specification onGitHub. Untuk membuat AMI kustom yang diinstal dengan sistem operasi lain, lihat Amazon EKS Contoh AMI Kustom aktifGitHub.

penting

Saat menentukan AMI, Amazon EKS tidak menggabungkan data pengguna apa pun. Sebaliknya, Anda bertanggung jawab untuk menyediakan bootstrap perintah yang diperlukan untuk node untuk bergabung dengan cluster. Jika simpul Anda gagal untuk bergabung dengan klaster, tindakan Amazon EKS CreateNodegroup dan UpdateNodegroupVersion juga gagal.

Batas dan ketentuan saat menentukan ID AMI

Berikut ini adalah batasan dan kondisi yang terkait dengan menentukan ID AMI dengan grup node terkelola:

  • Anda harus membuat grup node baru untuk beralih antara menentukan ID AMI dalam template peluncuran dan tidak menentukan ID AMI.

  • Anda tidak diberi tahu di konsol saat versi AMI yang lebih baru tersedia. Untuk memperbarui grup node ke versi AMI yang lebih baru, Anda perlu membuat versi baru template peluncuran dengan ID AMI yang diperbarui. Kemudian, Anda perlu memperbarui grup node dengan versi template peluncuran baru.

  • Bidang berikut tidak dapat disetel di API jika Anda menentukan ID AMI:

    • amiType

    • releaseVersion

    • version

  • Setiap taints set dalam API diterapkan secara asinkron jika Anda menentukan ID AMI. Untuk menerapkan taints sebelum node bergabung dengan cluster, Anda harus meneruskan taints ke kubelet dalam data pengguna Anda menggunakan flag baris --register-with-taints perintah. Untuk informasi lebih lanjut, lihat kubeletdi Kubernetes dokumentasi.

  • Saat menentukan ID AMI khusus untuk grup node Windows terkelola, tambahkan eks:kube-proxy-windows ke peta konfigurasi AWS IAM Authenticator Anda. Ini diperlukan agar DNS berfungsi dengan baik.

    1. Buka peta konfigurasi AWS IAM Authenticator untuk mengedit.

      kubectl edit -n kube-system cm aws-auth
    2. Tambahkan entri ini ke groups daftar di bawah masing-masing rolearn yang terkait dengan Windows node. Peta konfigurasi Anda akan terlihat mirip dengan aws-auth-cm-windows.yaml.

      - eks:kube-proxy-windows
    3. Simpan file, dan tutup editor teks Anda.