Kubernetes 1.16 - cara mengupgrade tanpa merusak apa pun

Kubernetes 1.16 - cara mengupgrade tanpa merusak apa pun

Hari ini, 18 September, versi Kubernetes berikutnya dirilis - 1.16. Seperti biasa, banyak perbaikan dan produk baru menanti kami. Namun saya ingin menarik perhatian Anda ke bagian Tindakan yang Diperlukan pada file PERUBAHANLOG-1.16.md. Bagian ini mempublikasikan perubahan yang mungkin merusak aplikasi Anda, alat pemeliharaan cluster, atau memerlukan perubahan pada file konfigurasi.

Secara umum, mereka memerlukan intervensi manual...

Mari kita mulai dengan perubahan yang kemungkinan besar akan mempengaruhi semua orang yang sudah cukup lama bekerja dengan kubernetes. Kubernetes API tidak lagi mendukung versi API sumber daya lama.

Jika ada yang tidak tahu atau lupa...Versi API sumber daya ditunjukkan dalam manifes, di bidang apiVersion: apps/v1

Yaitu:

Jenis sumber daya
versi lama
Apa yang harus diganti

Semua sumber daya
aplikasi/v1beta1
aplikasi/v1beta2
aplikasi/v1

penyebaran
daemonset
kumpulan replika
ekstensi/v1beta1
aplikasi/v1

kebijakan jaringan
ekstensi/v1beta1
jaringan.k8s.io/v1

kebijakan keamanan pod
ekstensi/v1beta1
kebijakan/v1beta1

Saya juga ingin menarik perhatian Anda pada fakta bahwa objek bertipe Ingress juga berubah apiVersion pada networking.k8s.io/v1beta1. Arti lama extensions/v1beta1 masih didukung, namun ada alasan bagus untuk memperbarui versi ini di manifes pada saat yang bersamaan.

Cukup banyak perubahan pada berbagai label sistem (Node labels) yang dipasang pada node.

Kubelet dilarang menyetel label sembarangan (sebelumnya label tersebut dapat disetel melalui kunci peluncuran kubelet --node-labels), mereka hanya meninggalkan daftar ini diizinkan:

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/*

Tags beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready dan beta.kubernetes.io/kube-proxy-ds-ready tidak lagi ditambahkan ke node baru, dan berbagai komponen tambahan sudah mulai menggunakan label yang sedikit berbeda sebagai pemilih node:

Komponen
Label lama
Label saat ini

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

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

kubeadm sekarang menghapus file konfigurasi kublet awal di belakangnya bootstrap-kubelet.conf. Jika alat Anda mengakses file ini, beralihlah menggunakan kubelet.conf, yang menyimpan pengaturan akses saat ini.

Cadvisor tidak lagi menyediakan metrik pod_name ΠΈ container_namejika Anda menggunakannya di Prometheus, buka metrik pod ΠΈ container masing.

Menghapus kunci dengan perintah baris:

Komponen
Kunci yang ditarik kembali

hiperkube
--buat-symlink

kube-proxy
--wadah-sumber daya

Penjadwal mulai menggunakan API Peristiwa versi v1beta1. Jika Anda menggunakan alat pihak ketiga untuk berinteraksi dengan Event API, beralihlah ke versi terbaru.

Momen humor. Selama persiapan rilis 1.16, perubahan berikut dilakukan:

  • menghapus anotasinya scheduler.alpha.kubernetes.io/critical-pod di versi v1.16.0-alpha.1
  • mengembalikan anotasi scheduler.alpha.kubernetes.io/critical-pod di versi v1.16.0-alpha.2
  • menghapus anotasinya scheduler.alpha.kubernetes.io/critical-pod dalam versi v1.16.0-beta.1

Gunakan lapangan spec.priorityClassName untuk menunjukkan pentingnya pod.

Sumber: www.habr.com

Tambah komentar