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
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.
-
Hubungkan host baru Anda sebagai node hybrid mengikuti Hubungkan node hibrida langkah-langkah. Saat menjalankan
nodeadm installperintah, gunakan versi Kubernetes target Anda. -
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.
-
Konfirmasikan node hybrid Anda pada versi Kubernetes target Anda berhasil bergabung dengan cluster Anda dan memiliki status Siap.
-
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_NAMEdengan nama node hybrid pada versi Kubernetes lama.kubectl cordonNODE_NAMEAnda 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 -
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 -
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_NAMEdengan nama node hybrid pada versi Kubernetes lama.kubectl drainNODE_NAME--ignore-daemonsets --delete-emptydir-dataAnda 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 -
Anda dapat menggunakan
nodeadmuntuk menghentikan dan menghapus artefak node hibrida dari host. Anda harus menjalankannodeadmdengan pengguna yang memiliki root/sudo hak istimewa. Secara default, tidaknodeadm uninstallakan melanjutkan jika ada pod yang tersisa di node. Untuk mengetahui informasi selengkapnya, lihat Referensi nodead m node hibrida.nodeadm uninstall -
Dengan artefak node hibrida dihentikan dan dihapus, hapus sumber daya node dari cluster Anda.
kubectl delete nodenode-nameAnda 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 -
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.
-
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_NAMEdengan nama simpul hibrida yang Anda tingkatkankubectl cordon NODE_NAME -
Kuras simpul yang Anda upgrade dengan perintah berikut. Untuk informasi selengkapnya tentang pengeringan node, lihat Safely Drainase a Node
dalam dokumentasi Kubernetes. Ganti NODE_NAMEdengan nama node hybrid yang Anda upgrade.kubectl drain NODE_NAME --ignore-daemonsets --delete-emptydir-data -
J
nodeadm upgradealankan pada node hybrid yang Anda upgrade. Anda harus menjalankannodeadmdengan 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. GantiK8S_VERSIONdengan versi Kubernetes target yang Anda tingkatkan.nodeadm upgrade K8S_VERSION -c file://nodeConfig.yaml -
Untuk mengizinkan pod dijadwalkan pada node setelah Anda memutakhirkan, ketik yang berikut ini. Ganti
NODE_NAMEdengan nama node.kubectl uncordon NODE_NAME -
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