View a markdown version of this page

Tingkatkan node hibrida untuk cluster Anda - Amazon EKS

Bantu meningkatkan 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 GitHub tautan Edit halaman ini di 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.

Tingkatkan node hibrida untuk cluster Anda

Panduan untuk meningkatkan node hibrida mirip dengan node Amazon EKS yang dikelola sendiri yang berjalan di Amazon EC2. Kami menyarankan Anda membuat node hibrida baru pada versi Kubernetes target Anda, dengan anggun memigrasikan aplikasi yang ada ke node hybrid pada versi Kubernetes baru, dan menghapus node hybrid pada versi Kubernetes lama dari cluster Anda. Pastikan untuk meninjau Prakti k Terbaik Amazon EKS untuk peningkatan sebelum memulai peningkatan. Amazon EKS Hybrid Nodes memiliki dukungan versi Kubernetes yang sama untuk cluster Amazon EKS dengan node cloud, termasuk dukungan standar dan ekstensif.

Amazon EKS Hybrid Nodes mengikuti kebijakan miring versi yang sama untuk node seperti Kubernetes hulu. Amazon EKS Hybrid Nodes tidak dapat berada di versi yang lebih baru daripada bidang kontrol Amazon EKS, dan node hibrida mungkin hingga tiga versi minor Kubernetes yang lebih tua dari versi minor pesawat kontrol Amazon EKS.

Jika Anda tidak memiliki kapasitas cadangan untuk membuat node hibrida baru pada versi Kubernetes target Anda untuk strategi peningkatan migrasi cutover, Anda dapat menggunakan Amazon EKS Hybrid Nodes CLI (nodeadm) untuk memutakhirkan versi Kubernetes dari node hibrida Anda di tempat.

penting

Jika Anda memutakhirkan node hybrid Anda di tempatnodeadm, ada downtime untuk node selama proses di mana versi lama komponen Kubernetes dimatikan dan komponen versi Kubernetes baru diinstal dan dimulai.

Diperlukan versi nodeadm untuk penyedia kredenSIAL SSM

Jika Anda menggunakan AWS System Manager (SSM) sebagai penyedia kredensia untuk node hibrida, Anda harus menggunakan nodeadm versi 1.0.19 atau yang lebih baru untuk instalasi dan peningkatan baru. Versi sebelumnya nodeadm berisi kunci penandatanganan SSM yang sudah ketinggalan zaman dan gagal selama nodeadm install dan nodeadm upgrade dengan kesalahan verifikasi tanda tangan berikut:

"msg":"Command failed","error":"failed to install ssm installer: validating ssm-setup-cli signature: Signature Verification Error: No matching signature"

Untuk mengatasi kesalahan ini, unduh versi terbaru nodeadm sebelum menjalankan nodeadm install ataunodeadm upgrade.

Prasyarat

Sebelum memutakhirkan, pastikan Anda telah menyelesaikan prasyarat berikut.

  • Versi Kubernetes target untuk upgrade node hibrida Anda harus sama dengan atau kurang dari versi pesawat kontrol Amazon EKS.

  • Jika Anda mengikuti strategi peningkatan migrasi cutover, node hibrida baru yang Anda instal pada versi Kubernetes target Anda harus memenuhi persyaratan. Pengaturan prasyarat untuk node hybrid Ini termasuk memiliki alamat IP dalam CIDR Jaringan Node Jarak Jauh yang Anda lewati selama pembuatan cluster Amazon EKS.

  • Untuk migrasi cutover dan peningkatan di tempat, node hibrida harus memiliki akses ke domain yang diperlukan untuk menarik versi baru dari dependensi node hybrid.

  • Anda harus menginstal kubectl di mesin lokal atau instans yang Anda gunakan untuk berinteraksi dengan titik akhir API Amazon EKS Kubernetes Anda.

  • Versi CNI Anda harus mendukung versi Kubernetes yang Anda tingkatkan. Jika tidak, tingkatkan versi CNI Anda sebelum memutakhirkan node hybrid Anda. Untuk informasi selengkapnya, lihat Konfigurasikan CNI untuk node hybrid.

Peningkatan migrasi cutover (biru-hijau)

Upgrade migrasi cutover mengacu pada proses pembuatan node hibrida baru pada host baru dengan versi Kubernetes target Anda, dengan anggun memigrasikan aplikasi yang ada ke node hibrida baru pada versi Kubernetes target Anda, dan menghapus node hybrid pada versi Kubernetes lama dari cluster Anda. Strategi ini juga disebut migrasi biru-hijau.

  1. Hubungkan host baru Anda sebagai node hybrid mengikuti Hubungkan node hibrida langkah-langkah. Saat menjalankan nodeadm install perintah, gunakan versi Kubernetes target Anda.

  2. Aktifkan komunikasi antara node hybrid baru pada versi Kubernetes target dan node hybrid Anda pada versi Kubernetes lama. Konfigurasi ini memungkinkan pod untuk berkomunikasi satu sama lain saat Anda memigrasikan beban kerja Anda ke node hybrid pada versi Kubernetes target.

  3. Konfirmasikan node hybrid Anda pada versi Kubernetes target Anda berhasil bergabung dengan cluster Anda dan memiliki status Siap.

  4. Gunakan perintah berikut untuk menandai setiap node yang ingin Anda hapus sebagai tidak dapat dijadwalkan. Ini agar pod baru tidak dijadwalkan atau dijadwal ulang pada node yang Anda ganti. Untuk informasi selengkapnya, lihat kubectl cordon dalam dokumentasi Kubernetes. Ganti NODE_NAME dengan nama node hybrid pada versi Kubernetes lama.

    kubectl cordon NODE_NAME

    Anda dapat mengidentifikasi dan mengikat semua node dari versi Kubernetes tertentu (dalam hal ini,1.28) dengan cuplikan kode berikut.

    K8S_VERSION=1.28 for node in $(kubectl get nodes -o json | jq --arg K8S_VERSION "$K8S_VERSION" -r '.items[] | select(.status.nodeInfo.kubeletVersion | match("\($K8S_VERSION)")).metadata.name') do echo "Cordoning $node" kubectl cordon $node done
  5. Jika penerapan Anda saat ini menjalankan kurang dari dua replika CoreDNS pada node hybrid Anda, tingkatkan penyebaran menjadi setidaknya dua replika. Sebaiknya jalankan setidaknya dua replika CoreDNS pada node hybrid untuk ketahanan selama operasi normal.

    kubectl scale deployments/coredns --replicas=2 -n kube-system
  6. Kuras setiap node hybrid pada versi Kubernetes lama yang ingin Anda hapus dari cluster Anda dengan perintah berikut. Untuk informasi selengkapnya tentang pengeringan node, lihat Safely Drainase a Node dalam dokumentasi Kubernetes. Ganti NODE_NAME dengan nama node hybrid pada versi Kubernetes lama.

    kubectl drain NODE_NAME --ignore-daemonsets --delete-emptydir-data

    Anda dapat mengidentifikasi dan menguras semua node dari versi Kubernetes tertentu (dalam hal ini,1.28) dengan cuplikan kode berikut.

    K8S_VERSION=1.28 for node in $(kubectl get nodes -o json | jq --arg K8S_VERSION "$K8S_VERSION" -r '.items[] | select(.status.nodeInfo.kubeletVersion | match("\($K8S_VERSION)")).metadata.name') do echo "Draining $node" kubectl drain $node --ignore-daemonsets --delete-emptydir-data done
  7. Anda dapat menggunakan nodeadm untuk menghentikan dan menghapus artefak node hibrida dari host. Anda harus menjalankan nodeadm dengan pengguna yang memiliki root/sudo hak istimewa. Secara default, tidak nodeadm uninstall akan melanjutkan jika ada pod yang tersisa di node. Untuk mengetahui informasi selengkapnya, lihat Referensi nodead m node hibrida.

    nodeadm uninstall
  8. Dengan artefak node hibrida dihentikan dan dihapus, hapus sumber daya node dari cluster Anda.

    kubectl delete node node-name

    Anda dapat mengidentifikasi dan menghapus semua node dari versi Kubernetes tertentu (dalam hal ini,1.28) dengan cuplikan kode berikut.

    K8S_VERSION=1.28 for node in $(kubectl get nodes -o json | jq --arg K8S_VERSION "$K8S_VERSION" -r '.items[] | select(.status.nodeInfo.kubeletVersion | match("\($K8S_VERSION)")).metadata.name') do echo "Deleting $node" kubectl delete node $node done
  9. Tergantung pada pilihan CNI Anda, mungkin ada artefak yang tersisa di node hybrid Anda setelah menjalankan langkah-langkah di atas. Untuk informasi selengkapnya, lihat Konfigurasikan CNI untuk node hybrid.

In-place peningkatan

Proses peningkatan di tempat mengacu pada penggunaan nodeadm upgrade untuk meningkatkan versi Kubernetes untuk node hibrida tanpa menggunakan host fisik atau virtual baru dan strategi migrasi cutover. nodeadm upgradeProses mematikan komponen Kubernetes lama yang ada yang berjalan pada node hybrid, menghapus instalasi komponen Kubernetes lama yang ada, menginstal komponen Kubernetes target baru, dan memulai komponen Kubernetes target baru. Sangat disarankan untuk memutakhirkan satu node pada satu waktu untuk meminimalkan dampak pada aplikasi yang berjalan pada node hybrid. Durasi proses ini tergantung pada bandwidth dan latensi jaringan Anda.

  1. Gunakan perintah berikut untuk menandai node yang Anda upgrade sebagai tidak dapat dijadwalkan. Hal ini agar pod baru tidak dijadwalkan atau dijadwal ulang pada node yang Anda upgrade. Untuk informasi selengkapnya, lihat kubectl cordon dalam dokumentasi Kubernetes. Ganti NODE_NAME dengan nama simpul hibrida yang Anda tingkatkan

    kubectl cordon NODE_NAME
  2. Kuras simpul yang Anda upgrade dengan perintah berikut. Untuk informasi selengkapnya tentang pengeringan node, lihat Safely Drainase a Node dalam dokumentasi Kubernetes. Ganti NODE_NAME dengan nama node hybrid yang Anda upgrade.

    kubectl drain NODE_NAME --ignore-daemonsets --delete-emptydir-data
  3. J nodeadm upgrade alankan pada node hybrid yang Anda upgrade. Anda harus menjalankan nodeadm dengan pengguna yang memiliki root/sudo hak istimewa. Nama node dipertahankan melalui peningkatan untuk penyedia kredensia AWS SSM dan AWS IAM Roles Anywhere. Anda tidak dapat mengubah penyedia kredenSIAL selama proses peningkatan. Lihat Referensi nodead m node hibrida untuk nilai konfigurasi untuknodeConfig.yaml. Ganti K8S_VERSION dengan versi Kubernetes target yang Anda tingkatkan.

    nodeadm upgrade K8S_VERSION -c file://nodeConfig.yaml
  4. Untuk mengizinkan pod dijadwalkan pada node setelah Anda memutakhirkan, ketik yang berikut ini. Ganti NODE_NAME dengan nama node.

    kubectl uncordon NODE_NAME
  5. Perhatikan status node hybrid Anda dan tunggu node Anda mati dan restart pada versi Kubernetes baru dengan status Siap.

    kubectl get nodes -o wide -w