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.
Perbarui klaster yang ada ke versi Kubernetes baru
Ketika baru Kubernetes versi tersedia di AmazonEKS, Anda dapat memperbarui EKS cluster Amazon Anda ke versi terbaru.
penting
Setelah Anda meningkatkan klaster, Anda tidak dapat menurunkan versi ke versi sebelumnya. Kami menyarankan bahwa, sebelum Anda memperbarui ke yang baru Kubernetes versi, Anda meninjau informasi di Memahami Kubernetes siklus hidup versi aktif EKS dan juga meninjau dalam langkah-langkah pembaruan dalam topik ini.
Baru Kubernetes versi terkadang memperkenalkan perubahan signifikan. Oleh karena itu, kami menyarankan Anda menguji perilaku aplikasi Anda terhadap yang baru Kubernetes versi sebelum Anda memperbarui cluster produksi Anda. Anda dapat melakukannya dengan membuat alur kerja integrasi berkelanjutan untuk menguji perilaku aplikasi Anda sebelum pindah ke yang baru Kubernetes versi.
Proses pembaruan terdiri dari Amazon EKS meluncurkan node API server baru dengan yang diperbarui Kubernetes versi untuk menggantikan yang sudah ada. Amazon EKS melakukan pemeriksaan infrastruktur standar dan kesehatan kesiapan untuk lalu lintas jaringan pada node baru ini untuk memverifikasi bahwa mereka berfungsi seperti yang diharapkan. Namun, setelah Anda memulai upgrade cluster, Anda tidak dapat menjeda atau menghentikannya. Jika salah satu pemeriksaan ini gagal, Amazon EKS mengembalikan penerapan infrastruktur, dan klaster Anda tetap pada yang sebelumnya Kubernetes versi. Aplikasi yang berjalan tidak terpengaruh, dan klaster Anda tidak pernah dibiarkan dalam keadaan non-deterministik atau tidak dapat dipulihkan. Amazon EKS secara teratur mencadangkan semua cluster yang dikelola, dan mekanisme ada untuk memulihkan cluster jika perlu. Kami terus mengevaluasi dan meningkatkan Kubernetes proses manajemen infrastruktur.
Untuk memperbarui cluster, Amazon EKS memerlukan hingga lima alamat IP yang tersedia dari subnet yang Anda tentukan saat membuat klaster. Amazon EKS membuat antarmuka jaringan elastis cluster baru (antarmuka jaringan) di salah satu subnet yang Anda tentukan. Antarmuka jaringan dapat dibuat dalam subnet yang berbeda dari antarmuka jaringan yang ada, jadi pastikan bahwa aturan grup keamanan Anda mengizinkan komunikasi cluster yang diperlukan untuk setiap subnet yang Anda tentukan saat Anda membuat cluster Anda. Jika salah satu subnet yang Anda tentukan saat membuat klaster tidak ada, tidak memiliki cukup alamat IP yang tersedia, atau tidak memiliki aturan grup keamanan yang memungkinkan komunikasi cluster yang diperlukan, maka pembaruan dapat gagal.
catatan
Untuk memastikan bahwa titik akhir API server untuk kluster Anda selalu dapat diakses, Amazon EKS menyediakan yang sangat tersedia Kubernetes mengontrol pesawat dan melakukan pembaruan bergulir dari instance API server selama operasi pembaruan. Untuk memperhitungkan perubahan alamat IP dari instance API server yang mendukung Anda Kubernetes APIendpoint server, Anda harus memastikan bahwa klien API server Anda mengelola koneksi ulang secara efektif. Versi terbaru kubectl
dan Kubernetes pustaka
Perbarui Kubernetes versi untuk EKS cluster Amazon Anda
Untuk memperbarui Kubernetes versi untuk cluster Anda
-
Bandingkan Kubernetes versi bidang kontrol cluster Anda ke Kubernetes versi node Anda.
-
Dapatkan Kubernetes versi pesawat kontrol cluster Anda.
kubectl version
-
Dapatkan Kubernetes versi node Anda. Perintah ini mengembalikan semua node Amazon dan Fargate yang dikelola sendiri EC2 dan dikelola. Setiap Fargate Pod terdaftar sebagai simpulnya sendiri.
kubectl get nodes
Sebelum memperbarui pesawat kontrol Anda ke yang baru Kubernetes versi, pastikan bahwa Kubernetes versi minor dari node terkelola dan node Fargate di cluster Anda sama dengan versi bidang kontrol Anda. Misalnya, jika bidang kontrol Anda menjalankan versi
1.30
dan salah satu node Anda menjalankan versi1.29
, maka Anda harus memperbarui node Anda ke versi1.30
sebelum memperbarui bidang kontrol Anda ke 1,31. Kami juga merekomendasikan agar Anda memperbarui simpul swakelola ke versi yang sama dengan versi bidang pengendalian Anda sebelum memperbarui bidang pengendalian itu. Untuk informasi selengkapnya, silakan lihat Memperbarui grup node terkelola untuk klaster Anda dan Perbarui node yang dikelola sendiri untuk klaster Anda. Jika Anda memiliki node Fargate dengan versi minor lebih rendah dari versi bidang kontrol, pertama-tama hapus Pod yang diwakili oleh node. Kemudian perbarui pesawat kontrol Anda. Sisanya Pods akan memperbarui ke versi baru setelah Anda menerapkannya kembali. -
-
Jika Kubernetes versi yang awalnya Anda gunakan untuk menggunakan cluster Anda adalah Kubernetes
1.25
atau nanti, lewati langkah ini.Secara default, Pod Pengontrol penerimaan kebijakan keamanan diaktifkan di EKS klaster Amazon. Sebelum memperbarui cluster Anda, pastikan yang tepat Pod Kebijakan keamanan sudah ada. Ini untuk menghindari potensi masalah keamanan. Anda dapat memeriksa kebijakan default dengan
kubectl get psp eks.privileged
perintah.kubectl get psp eks.privileged
Jika Anda menerima kesalahan berikut, lihat Amazon EKS default Pod kebijakan keamanan sebelum melanjutkan.
Error from server (NotFound): podsecuritypolicies.extensions "eks.privileged" not found
-
Jika Kubernetes versi yang awalnya Anda gunakan untuk menggunakan cluster Anda adalah Kubernetes
1.18
atau nanti, lewati langkah ini.Anda mungkin perlu menghapus istilah yang dihentikan dari CoreDNS nyata.
-
Periksa untuk melihat apakah Anda CoreDNS manifes memiliki garis yang hanya memiliki kata
upstream
.kubectl get configmap coredns -n kube-system -o jsonpath='{$.data.Corefile}' | grep upstream
Jika tidak ada output yang dikembalikan, ini berarti manifes Anda tidak memiliki baris. Jika ini masalahnya, lompat ke langkah berikutnya. Jika kata
upstream
dikembalikan, hapus baris. -
Hapus baris di dekat bagian atas file yang hanya memiliki kata
upstream
dalam file configmap. Jangan mengubah apa pun dalam file. Setelah baris dihapus, simpan perubahannya.kubectl edit configmap coredns -n kube-system -o yaml
-
-
Perbarui cluster Anda menggunakan
eksctl
AWS Management Console,, atau AWS CLI.penting
-
Jika Anda memperbarui ke versi
1.23
dan menggunakan EBS volume Amazon di klaster, Anda harus menginstal EBS CSI driver Amazon di klaster sebelum memperbarui klaster ke versi1.23
untuk menghindari gangguan beban kerja. Untuk informasi selengkapnya, silakan lihat Kubernetes1.23 dan Menyimpan Kubernetes volume dengan Amazon EBS. -
Kubernetes
1.24
dan kemudian digunakancontainerd
sebagai runtime container default. Jika Anda beralih kecontainerd
runtime dan sudah memiliki Fluentd dikonfigurasi untuk Container Insights, maka Anda harus bermigrasi Fluentd kepada Fluent Bit sebelum memperbarui cluster Anda. Bagian Fluentd parser dikonfigurasi untuk hanya mengurai pesan log dalam JSON format. Tidak sepertidockerd
, runtimecontainerd
container memiliki pesan log yang tidak dalam JSON format. Jika Anda tidak bermigrasi ke Fluent Bit, beberapa yang dikonfigurasi Fluentd's parser akan menghasilkan sejumlah besar kesalahan di dalam Fluentd wadah. Untuk informasi selengkapnya tentang migrasi, lihat Mengatur Fluent Bit sebagai DaemonSet untuk mengirim log ke CloudWatch Log. -
Karena Amazon EKS menjalankan bidang kontrol yang sangat tersedia, Anda hanya dapat memperbarui satu versi minor dalam satu waktu. Untuk informasi lebih lanjut tentang persyaratan ini, lihat Kubernetes Versi dan Versi Kebijakan Dukungan Skew.
Asumsikan bahwa versi cluster Anda saat ini adalah versi 1.29
dan Anda ingin memperbaruinya ke versi1.31
. Anda harus terlebih dahulu memperbarui1.29
klaster versi Anda ke versi1.30
dan kemudian memperbarui1.30
klaster versi Anda ke versi1.31
. -
Tinjau versi miring di antara Kubernetes
kube-apiserver
dankubelet
pada node Anda.-
Mulai dari Kubernetes versi
1.28
,kubelet
mungkin hingga tiga versi minor yang lebih tua darikube-apiserver
. Lihat Kebijakan miring versi upstream Kubernetes. -
Jika
kubelet
pada node terkelola dan Fargate Anda aktif Kubernetes versi1.25
atau yang lebih baru, Anda dapat memperbarui cluster Anda hingga tiga versi ke depan tanpa memperbaruikubelet
versi. Misalnya, jika versikubelet
aktif1.25
, Anda dapat memperbarui versi EKS cluster Amazon Anda dari1.25
ke1.26
, ke1.27
, dan ke1.28
sementara versikubelet
tetap ada1.25
. -
Jika
kubelet
pada node terkelola dan Fargate Anda aktif Kubernetes versi1.24
atau yang lebih lama, mungkin hanya hingga dua versi minor yang lebih tua dari versikube-apiserver
. Dengan kata lain, jika versikubelet
is1.24
atau lebih lama, Anda hanya dapat memperbarui cluster Anda hingga dua versi ke depan. Misalnya, jika versi on1.21
, Anda dapat memperbarui versi EKS cluster Amazon Anda dari1.21
ke1.22
, dan ke1.23
, tetapi Anda tidak akan dapat memperbarui cluster untuk1.24
sementarakubelet
tetap aktif1.21
.kubelet
-
-
Sebagai praktik terbaik sebelum memulai pembaruan, pastikan bahwa
kubelet
pada node Anda sama Kubernetes versi sebagai pesawat kontrol Anda. -
Jika klaster Anda dikonfigurasi dengan versi Amazon VPC CNI plugin for Kubernetes yang lebih awal dari
1.8.0
, maka kami sarankan Anda memperbarui plugin ke versi terbaru sebelum memperbarui cluster Anda. Untuk memperbarui plugin, lihatTetapkan ke IPs Pods dengan Amazon VPC CNI. -
Jika Anda memperbarui cluster Anda ke versi
1.25
atau yang lebih baru dan memiliki AWS Load Balancer Controller disebarkan di cluster Anda, lalu perbarui pengontrol ke versi2.4.7
atau yang lebih baru sebelum memperbarui versi cluster Anda ke1.25
. Untuk informasi selengkapnya, lihat catatan Kubernetes1,25 rilis.
-
-
Setelah pembaruan klaster Anda selesai, perbarui node Anda ke yang sama Kubernetes versi minor sebagai kluster Anda yang diperbarui. Untuk informasi selengkapnya, silakan lihat Perbarui node yang dikelola sendiri untuk klaster Anda dan Memperbarui grup node terkelola untuk klaster Anda. Yang baru Pods yang diluncurkan di Fargate memiliki
kubelet
versi yang cocok dengan versi cluster Anda. Fargate yang ada Pods tidak berubah. -
(Opsional) Jika Anda menerapkan Kubernetes Cluster Autoscaler ke klaster Anda sebelum memperbarui cluster, perbarui Cluster Autoscaler ke versi terbaru yang cocok Kubernetes versi mayor dan minor yang Anda perbarui.
-
Buka halaman rilis
Cluster Autoscaler di browser web dan temukan versi Cluster Autoscaler terbaru yang cocok dengan klaster Anda Kubernetes versi mayor dan minor. Misalnya, jika klaster Anda Kubernetes versi adalah 1.31
temukan rilis Cluster Autoscaler terbaru yang dimulai dengan.1.31
Catat nomor versi semantik (1.31.n
, misalnya) untuk rilis yang akan digunakan pada langkah berikutnya. -
Atur citra label Klaster Autoscaler ke versioning yang Anda simpan pada langkah sebelumnya menggunakan perintah berikut. Jika perlu, ganti
dengan nilai Anda sendiri.1.31
.n
kubectl -n kube-system set image deployment.apps/cluster-autoscaler cluster-autoscaler=registry.k8s.io/autoscaling/cluster-autoscaler:v
1.31
.n
-
-
(Cluster dengan GPU node saja) Jika cluster Anda memiliki grup node dengan GPU dukungan (misalnya,
p3.2xlarge
), Anda harus memperbarui plugin NVIDIA perangkat untuk KubernetesDaemonSet di cluster Anda. Ganti
dengan NVIDIAs-device-pluginversi/k8vX.X.X
yang Anda inginkan sebelum menjalankan perintah berikut. kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/
vX.X.X
/deployments/static/nvidia-device-plugin.yml -
Perbarui Amazon VPC CNI plugin for Kubernetes, CoreDNS, dan
kube-proxy
add-on. Kami menyarankan untuk memperbarui add-on ke versi minimum yang tercantum dalam token akun Layanan.-
Jika Anda menggunakan EKS add-on Amazon, pilih Cluster di EKS konsol Amazon, lalu pilih nama cluster yang Anda perbarui di panel navigasi kiri. Pemberitahuan muncul di konsol. Mereka memberi tahu Anda bahwa versi baru tersedia untuk setiap add-on yang memiliki pembaruan yang tersedia. Untuk memperbarui add-on, pilih tab Add-ons. Di salah satu kotak untuk add-on yang memiliki pembaruan yang tersedia, pilih Perbarui sekarang, pilih versi yang tersedia, lalu pilih Perbarui.
-
Sebagai alternatif, Anda dapat menggunakan AWS CLI atau
eksctl
untuk memperbarui add-on. Untuk informasi selengkapnya, lihat Memperbarui EKS add-on Amazon.
-
-
Jika perlu, perbarui versi Anda
kubectl
. Anda harus menggunakankubectl
versi yang berada dalam satu perbedaan versi minor dari bidang kontrol EKS cluster Amazon Anda. Misalnya,1.30
kubectl
klien bekerja dengan Kubernetes1.29
,1.30
, dan1.31
cluster. Anda dapat memeriksa versi yang saat ini diinstal dengan perintah berikut.kubectl version --client
Turunkan versi Kubernetes versi untuk EKS cluster Amazon
Anda tidak dapat menurunkan versi Kubernetes dari EKS kluster Amazon. Sebagai gantinya, buat cluster baru di EKS versi Amazon sebelumnya dan migrasi beban kerja.