Kubernetes 1.16 - bagaimana untuk menaik taraf tanpa melanggar apa-apa

Kubernetes 1.16 - bagaimana untuk menaik taraf tanpa melanggar apa-apa

Hari ini, 18 September, versi Kubernetes seterusnya dikeluarkan - 1.16. Seperti biasa, banyak penambahbaikan dan produk baharu menanti kami. Tetapi saya ingin menarik perhatian anda kepada bahagian Tindakan Diperlukan dalam fail CHANGELOG-1.16.md. Bahagian ini menerbitkan perubahan yang mungkin merosakkan aplikasi anda, alat penyelenggaraan kelompok atau memerlukan perubahan pada fail konfigurasi.

Secara umum, mereka memerlukan campur tangan manual...

Mari kita mulakan segera dengan perubahan yang kemungkinan besar akan menjejaskan semua orang yang telah bekerja dengan kubernetes cukup lama. API Kubernetes tidak lagi menyokong versi API sumber lama.

Jika ada yang tidak tahu atau terlupa...Versi API sumber ditunjukkan dalam manifes, dalam medan apiVersion: apps/v1

iaitu

Jenis sumber
versi lama
Apa yang patut diganti dengan

Semua sumber
apl/v1beta1
apl/v1beta2
apl/v1

penyebaran
daemonset
replikat
sambungan/v1beta1
apl/v1

dasar rangkaian
sambungan/v1beta1
networking.k8s.io/v1

polisi keselamatan pod
sambungan/v1beta1
dasar/v1beta1

Saya juga ingin menarik perhatian anda kepada fakta bahawa objek jenis Ingress juga berubah apiVersion pada networking.k8s.io/v1beta1. Makna lama extensions/v1beta1 masih disokong, tetapi terdapat sebab yang baik untuk mengemas kini versi ini dalam manifes pada masa yang sama.

Terdapat banyak perubahan dalam pelbagai label sistem (label Nod) yang dipasang pada nod.

Kubelet telah dilarang daripada menetapkan label sewenang-wenangnya (sebelum ini mereka boleh ditetapkan melalui kekunci pelancaran kubelet --node-labels), mereka hanya meninggalkan senarai ini dibenarkan:

kubernetes.io/hostname
kubernetes.io/instance-type
kubernetes.io/os
kubernetes.io/arch

beta.kubernetes.io/instance-type
beta.kubernetes.io/os
beta.kubernetes.io/arch

failure-domain.beta.kubernetes.io/zone
failure-domain.beta.kubernetes.io/region

failure-domain.kubernetes.io/zone
failure-domain.kubernetes.io/region

[*.]kubelet.kubernetes.io/*
[*.]node.kubernetes.io/*

Label beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready dan beta.kubernetes.io/kube-proxy-ds-ready tidak lagi ditambahkan pada nod baharu dan pelbagai komponen tambahan telah mula menggunakan label yang sedikit berbeza sebagai pemilih nod:

Komponen
Label lama
Label semasa

kube-proxy
beta.kubernetes.io/kube-proxy-ds-ready
node.kubernetes.io/kube-proxy-ds-ready

ip-mask-agent
beta.kubernetes.io/masq-agent-ds-ready
node.kubernetes.io/masq-agent-ds-ready

metadata-proksi
beta.kubernetes.io/metadata-proxy-ready
cloud.google.com/metadata-proxy-ready

kubeadm kini mengalih keluar fail konfigurasi kublet awal di belakangnya bootstrap-kubelet.conf. Jika alatan anda mengakses fail ini, kemudian beralih kepada menggunakan kubelet.conf, yang menyimpan tetapan akses semasa.

Cadvisor tidak lagi menyediakan metrik pod_name ΠΈ container_namejika anda menggunakannya dalam Prometheus, pergi ke metrik pod ΠΈ container masing-masing.

Mengeluarkan kunci dengan arahan baris:

Komponen
Kunci ditarik balik

hyperkube
--buat-symlink

kube-proxy
--bekas-sumber

Penjadual mula menggunakan versi v1beta1 API Acara. Jika anda menggunakan alatan pihak ketiga untuk berinteraksi dengan API Acara, tukar kepada versi terkini.

Sekejap jenaka. Semasa penyediaan keluaran 1.16, perubahan berikut telah dibuat:

  • mengalih keluar anotasi scheduler.alpha.kubernetes.io/critical-pod dalam versi v1.16.0-alpha.1
  • mengembalikan anotasi scheduler.alpha.kubernetes.io/critical-pod dalam versi v1.16.0-alpha.2
  • mengalih keluar anotasi scheduler.alpha.kubernetes.io/critical-pod dalam versi v1.16.0-beta.1

Gunakan medan spec.priorityClassName untuk menunjukkan kepentingan pod.

Sumber: www.habr.com

Tambah komen