Penskalaan otomatis CoreDNS - 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.

Penskalaan otomatis CoreDNS

Saat Anda meluncurkan klaster Amazon EKS dengan setidaknya satu node, dua replika CoreDNS gambar akan di-deploy secara default, terlepas dari jumlah node yang digunakan di cluster Anda. Deployment CoreDNSPod memberikan resolusi nama untuk semua Pod di cluster. Aplikasi menggunakan resolusi nama untuk terhubung ke pod dan layanan di cluster serta menghubungkan ke layanan di luar cluster. Karena jumlah permintaan untuk resolusi nama (kueri) dari pod meningkat, CoreDNS pod bisa kewalahan dan melambat, dan menolak permintaan yang tidak dapat ditangani oleh pod.

Untuk menangani peningkatan beban pada CoreDNS pod, pertimbangkan sistem penskalaan otomatis untuk. CoreDNS Amazon EKS dapat mengelola penskalaan otomatis CoreDNS Deployment dalam versi Eks Add-on. CoreDNS CoreDNSAutoscaler ini terus memantau status cluster, termasuk jumlah node dan core CPU. Berdasarkan informasi tersebut, pengontrol akan secara dinamis menyesuaikan jumlah replika CoreDNS penerapan di cluster EKS. Fitur ini berfungsi untuk CoreDNS v1.9 dan versi rilis EKS 1.25 dan yang lebih baru. Untuk informasi selengkapnya tentang versi mana yang kompatibel dengan CoreDNS Autoscaling, lihat bagian berikut.

Kami merekomendasikan penggunaan fitur ini bersama dengan praktik terbaik Penskalaan Otomatis Kluster EKS lainnya untuk meningkatkan ketersediaan aplikasi secara keseluruhan dan skalabilitas klaster.

Prasyarat

Agar Amazon EKS dapat menskalakan CoreDNS penerapan Anda, ada tiga prasyarat:

  • Anda harus menggunakan versi Eks Add-on dari. CoreDNS

  • Cluster Anda harus menjalankan setidaknya versi cluster minimum dan versi platform.

  • Cluster Anda harus menjalankan setidaknya versi minimum Eks Add-on. CoreDNS

Versi cluster minimum

Penskalaan otomatis CoreDNS dilakukan oleh komponen baru di bidang kontrol cluster, yang dikelola oleh Amazon EKS. Karena itu, Anda harus memutakhirkan cluster Anda ke rilis EKS yang mendukung versi platform minimum yang memiliki komponen baru.

Cluster Amazon EKS baru. Untuk menyebarkan satu, lihatMemulai dengan Amazon EKS. Cluster harus Kubernetes versi 1.25 atau yang lebih baru. Cluster harus menjalankan salah satu Kubernetes versi dan versi platform yang tercantum dalam tabel berikut atau versi yang lebih baru. Perhatikan bahwa versi apa pun Kubernetes dan platform yang lebih lambat dari yang terdaftar juga didukung. Anda dapat memeriksa Kubernetes versi Anda saat ini dengan mengganti my-cluster dalam perintah berikut dengan nama cluster Anda dan kemudian menjalankan perintah yang dimodifikasi:

aws eks describe-cluster --name my-cluster --query cluster.version --output text

Versi Kubernetes

Versi platform

1.29.3

eks.7

1.28.8

eks.13

1.27.12

eks.17

1.26.15

eks.18

1.25.16

eks.19

catatan

Setiap versi platform dari Kubernetes versi yang lebih baru juga didukung, misalnya Kubernetes versi 1.30 dari eks.1 dan seterusnya.

Versi pengaya Minimum EKS

Versi Kubernetes 1.29 1.28 1.27 1.26 1.25
v1.11.1-eksbuild.9 v1.10.1-eksbuild.11 v1.10.1-eksbuild.11 v1.9.3-eksbuild.15 v1.9.3-eksbuild.15

Mengkonfigurasi CoreDNS penskalaan otomatis di AWS Management Console

  1. Pastikan klaster Anda berada pada atau di atas versi cluster minimum.

    Amazon EKS meningkatkan cluster antara versi platform dari Kubernetes versi yang sama secara otomatis, dan Anda tidak dapat memulai proses ini sendiri. Sebagai gantinya, Anda dapat memutakhirkan cluster Anda ke Kubernetes versi berikutnya, dan cluster akan ditingkatkan ke versi K8s dan versi platform terbaru. Misalnya, jika Anda memutakhirkan dari 1.25 ke1.26, cluster akan meningkatkan ke1.26.15 eks.18.

    KubernetesVersi baru terkadang memperkenalkan perubahan signifikan. Oleh karena itu, kami menyarankan Anda menguji perilaku aplikasi Anda dengan menggunakan klaster terpisah dari Kubernetes versi baru sebelum Anda memperbarui cluster produksi Anda.

    Untuk memutakhirkan cluster ke Kubernetes versi baru, ikuti prosedur diMemperbarui Kubernetes versi cluster Amazon EKS.

  2. Pastikan Anda memiliki Pengaya EKS untukCoreDNS, bukan Deployment yang dikelola sendiriCoreDNS.

    Bergantung pada alat yang digunakan untuk membuat klaster, saat ini Anda mungkin tidak menginstal jenis add-on Amazon EKS di cluster Anda. Untuk melihat jenis add-on yang diinstal pada cluster Anda, Anda dapat menjalankan perintah berikut. Ganti my-cluster dengan nama klaster Anda.

    aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output text

    Jika nomor versi dikembalikan, Anda memiliki jenis add-on Amazon EKS yang diinstal pada cluster Anda dan Anda dapat melanjutkan ke langkah berikutnya. Jika kesalahan dikembalikan, Anda tidak memiliki jenis add-on Amazon EKS yang diinstal pada cluster Anda. Selesaikan langkah-langkah prosedur yang tersisa Membuat add-on Amazon EKS untuk mengganti versi yang dikelola sendiri dengan add-on Amazon EKS.

  3. Pastikan bahwa EKS Add-on for CoreDNS Anda memiliki versi yang sama atau lebih tinggi dari versi Add-on EKS minimum.

    Lihat versi add-on mana yang diinstal pada cluster Anda. Anda dapat memeriksa AWS Management Console atau menjalankan perintah berikut:

    kubectl describe deployment coredns --namespace kube-system | grep coredns: | cut -d : -f 3

    Contoh output adalah sebagai berikut.

    v1.10.1-eksbuild.11

    Bandingkan versi ini dengan versi Eks Add-on minimum di bagian sebelumnya. Jika perlu, tingkatkan EKS Add-on ke versi yang lebih tinggi dengan mengikuti prosedurMemperbarui add-on Amazon EKS.

  4. Tambahkan konfigurasi penskalaan otomatis ke pengaturan konfigurasi Opsional dari Eks Add-on.

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

    2. Di panel navigasi kiri, pilih Clusters, lalu pilih nama cluster yang ingin Anda konfigurasikan add-on.

    3. Pilih tab Add-ons.

    4. Pilih kotak di kanan atas kotak CoreDNS add-on dan kemudian pilih Edit.

    5. Pada CoreDNS halaman Konfigurasi:

      1. Pilih Versi yang ingin Anda gunakan. Kami menyarankan Anda menyimpan versi yang sama dengan langkah sebelumnya, dan memperbarui versi dan konfigurasi dalam tindakan terpisah.

      2. Perluas pengaturan konfigurasi opsional.

      3. Masukkan kunci JSON "autoscaling": dan nilai objek JSON bersarang dengan kunci "enabled": dan nilai true dalam nilai Konfigurasi. Teks yang dihasilkan harus berupa objek JSON yang valid. Jika kunci dan nilai ini adalah satu-satunya data dalam kotak teks, kelilingi kunci dan nilai dengan kurawal kurawal. {} Contoh berikut menunjukkan penskalaan otomatis diaktifkan:

        { "autoScaling": { "enabled": true } }
      4. (Opsional) Anda dapat memberikan nilai minimum dan maksimum yang penskalaan otomatis dapat menskalakan jumlah pod. CoreDNS

        Contoh berikut menunjukkan penskalaan otomatis diaktifkan dan semua kunci opsional memiliki nilai. Kami merekomendasikan bahwa jumlah minimum CoreDNS pod selalu lebih besar dari 2 untuk memberikan ketahanan bagi layanan DNS di klaster.

        { "autoScaling": { "enabled": true, "minReplicas": 2, "maxReplicas": 10 } }
    6. Untuk menerapkan konfigurasi baru dengan mengganti CoreDNS pod, pilih Simpan perubahan.

      Amazon EKS menerapkan perubahan pada Pengaya EKS dengan menggunakan peluncuran Kubernetes Deployment for CoreDNS. Anda dapat melacak status peluncuran dalam riwayat Pembaruan add-on di dan dengan AWS Management Console . kubectl rollout status deployment/coredns --namespace kube-system

      kubectl rolloutmemiliki perintah berikut:

      $ kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

      Jika peluncuran terlalu lama, Amazon EKS akan membatalkan peluncuran, dan pesan dengan jenis Pembaruan Addon dan status Gagal akan ditambahkan ke riwayat Pembaruan add-on. Untuk menyelidiki masalah apa pun, mulailah dari riwayat peluncuran, dan jalankan kubectl logs di CoreDNS pod untuk melihat log. CoreDNS

  5. Jika entri baru dalam riwayat Pembaruan memiliki status Sukses, maka peluncuran telah selesai dan add-on menggunakan konfigurasi baru di semua pod. CoreDNS Saat Anda mengubah jumlah node dan inti CPU node di cluster, Amazon EKS menskalakan jumlah replika CoreDNS penerapan.

Mengkonfigurasi CoreDNS penskalaan otomatis di AWS Command Line Interface

  1. Pastikan klaster Anda berada pada atau di atas versi cluster minimum.

    Amazon EKS meningkatkan cluster antara versi platform dari Kubernetes versi yang sama secara otomatis, dan Anda tidak dapat memulai proses ini sendiri. Sebagai gantinya, Anda dapat memutakhirkan cluster Anda ke Kubernetes versi berikutnya, dan cluster akan ditingkatkan ke versi K8s dan versi platform terbaru. Misalnya, jika Anda memutakhirkan dari 1.25 ke1.26, cluster akan meningkatkan ke1.26.15 eks.18.

    KubernetesVersi baru terkadang memperkenalkan perubahan signifikan. Oleh karena itu, kami menyarankan Anda menguji perilaku aplikasi Anda dengan menggunakan klaster terpisah dari Kubernetes versi baru sebelum Anda memperbarui cluster produksi Anda.

    Untuk memutakhirkan cluster ke Kubernetes versi baru, ikuti prosedur diMemperbarui Kubernetes versi cluster Amazon EKS.

  2. Pastikan Anda memiliki Pengaya EKS untukCoreDNS, bukan Deployment yang dikelola sendiriCoreDNS.

    Bergantung pada alat yang digunakan untuk membuat klaster, saat ini Anda mungkin tidak menginstal jenis add-on Amazon EKS di cluster Anda. Untuk melihat jenis add-on yang diinstal pada cluster Anda, Anda dapat menjalankan perintah berikut. Ganti my-cluster dengan nama klaster Anda.

    aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output text

    Jika nomor versi dikembalikan, Anda memiliki jenis add-on Amazon EKS yang diinstal pada cluster Anda. Jika kesalahan dikembalikan, Anda tidak memiliki jenis add-on Amazon EKS yang diinstal pada cluster Anda. Selesaikan langkah-langkah prosedur yang tersisa Membuat add-on Amazon EKS untuk mengganti versi yang dikelola sendiri dengan add-on Amazon EKS.

  3. Pastikan bahwa EKS Add-on for CoreDNS Anda memiliki versi yang sama atau lebih tinggi dari versi Add-on EKS minimum.

    Lihat versi add-on mana yang diinstal pada cluster Anda. Anda dapat memeriksa AWS Management Console atau menjalankan perintah berikut:

    kubectl describe deployment coredns --namespace kube-system | grep coredns: | cut -d : -f 3

    Contoh output adalah sebagai berikut.

    v1.10.1-eksbuild.11

    Bandingkan versi ini dengan versi Eks Add-on minimum di bagian sebelumnya. Jika perlu, tingkatkan EKS Add-on ke versi yang lebih tinggi dengan mengikuti prosedurMemperbarui add-on Amazon EKS.

  4. Tambahkan konfigurasi penskalaan otomatis ke pengaturan konfigurasi Opsional dari Eks Add-on.

    Jalankan AWS CLI perintah berikut. Ganti my-cluster dengan nama cluster Anda dan peran IAM ARN dengan peran yang Anda gunakan.

    aws eks update-addon --cluster-name my-cluster --addon-name coredns \ --resolve-conflicts PRESERVE --configuration-values '{"autoScaling":{"enabled":true}}'

    Amazon EKS menerapkan perubahan pada Pengaya EKS dengan menggunakan peluncuran Kubernetes Deployment for CoreDNS. Anda dapat melacak status peluncuran dalam riwayat Pembaruan add-on di dan dengan AWS Management Console . kubectl rollout status deployment/coredns --namespace kube-system

    kubectl rolloutmemiliki perintah berikut:

    kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

    Jika peluncuran terlalu lama, Amazon EKS akan membatalkan peluncuran, dan pesan dengan jenis Pembaruan Addon dan status Gagal akan ditambahkan ke riwayat Pembaruan add-on. Untuk menyelidiki masalah apa pun, mulailah dari riwayat peluncuran, dan jalankan kubectl logs di CoreDNS pod untuk melihat log. CoreDNS

  5. (Opsional) Anda dapat memberikan nilai minimum dan maksimum yang penskalaan otomatis dapat menskalakan jumlah pod. CoreDNS

    Contoh berikut menunjukkan penskalaan otomatis diaktifkan dan semua kunci opsional memiliki nilai. Kami merekomendasikan bahwa jumlah minimum CoreDNS pod selalu lebih besar dari 2 untuk memberikan ketahanan bagi layanan DNS di klaster.

    aws eks update-addon --cluster-name my-cluster --addon-name coredns \ --resolve-conflicts PRESERVE --configuration-values '{"autoScaling":{"enabled":true}, "minReplicas": 2, "maxReplicas": 10}'
  6. Periksa status pembaruan ke add-on dengan menjalankan perintah berikut:

    aws eks describe-addon --cluster-name my-cluster --addon-name coredns \

    Jika Anda melihat baris ini:"status": "ACTIVE", maka peluncuran telah selesai dan add-on menggunakan konfigurasi baru di semua pod. CoreDNS Saat Anda mengubah jumlah node dan inti CPU node di cluster, Amazon EKS menskalakan jumlah replika CoreDNS penerapan.