Kubernetes 1.16 - kung paano mag-upgrade nang hindi nasisira ang anuman

Kubernetes 1.16 - kung paano mag-upgrade nang hindi nasisira ang anuman

Ngayon, Setyembre 18, ang susunod na bersyon ng Kubernetes ay inilabas - 1.16. Gaya ng dati, maraming pagpapabuti at bagong produkto ang naghihintay sa amin. Ngunit nais kong iguhit ang iyong pansin sa mga seksyong Kinakailangan ng Aksyon ng file CHANGELOG-1.16.md. Ang mga seksyong ito ay nagpa-publish ng mga pagbabago na maaaring masira ang iyong application, mga tool sa pagpapanatili ng cluster, o nangangailangan ng mga pagbabago sa mga configuration file.

Sa pangkalahatan, nangangailangan sila ng manu-manong interbensyon...

Magsimula tayo kaagad sa isang pagbabago na malamang na makakaapekto sa lahat na matagal nang nagtatrabaho sa mga kubernetes. Hindi na sinusuportahan ng Kubernetes API ang mga bersyon ng legacy na mapagkukunan ng API.

Kung may hindi nakakaalam o nakakalimutan...Ang bersyon ng API ng mapagkukunan ay ipinahiwatig sa manifest, sa field apiVersion: apps/v1

Katulad

Uri ng mapagkukunan
lumang bersyon
Ano ang dapat palitan ng

Lahat ng mapagkukunan
apps/v1beta1
apps/v1beta2
apps/v1

mga pag-deploy
daemonset
replicate
extension/v1beta1
apps/v1

mga patakaran sa network
mga extension/v1beta1
networking.k8s.io/v1

podsecuritypolicies
mga extension/v1beta1
patakaran/v1beta1

Nais ko ring iguhit ang iyong pansin sa katotohanan na ang mga bagay ng uri Ingress nagbago din apiVersion sa networking.k8s.io/v1beta1. Lumang kahulugan extensions/v1beta1 ay suportado pa rin, ngunit may magandang dahilan upang i-update ang bersyong ito sa mga manifest sa parehong oras.

Napakaraming pagbabago sa iba't ibang mga label ng system (mga label ng Node) na naka-install sa mga node.

Ipinagbawal ang Kubelet na magtakda ng mga arbitrary na label (dati ay maaaring itakda ang mga ito sa pamamagitan ng mga key ng paglulunsad kubelet --node-labels), iniwan lang nila ang listahang ito pinahihintulutan:

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

Mga label beta.kubernetes.io/metadata-proxy-ready, hindi na idinaragdag ang beta.kubernetes.io/metadata-proxy-ready at beta.kubernetes.io/kube-proxy-ds-ready sa mga bagong node, at nagsimulang gumamit ng iba't ibang karagdagang bahagi ang mga label bilang mga tagapili ng node:

Component
Lumang label
Kasalukuyang label

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-proxy
beta.kubernetes.io/metadata-proxy-ready
cloud.google.com/metadata-proxy-ready

Tinatanggal na ngayon ng kubeadm ang paunang kublet configuration file sa likod nito bootstrap-kubelet.conf. Kung ina-access ng iyong mga tool ang file na ito, lumipat sa paggamit kubelet.conf, na nag-iimbak ng mga kasalukuyang setting ng pag-access.

Ang Cadvisor ay hindi na nagbibigay ng mga sukatan pod_name ΠΈ container_namekung ginamit mo ang mga ito sa Prometheus, pumunta sa mga sukatan pod ΠΈ container ayon sa pagkakabanggit.

Inalis ang mga susi gamit ang line command:

Component
Binawi ang susi

hyperkube
--gumawa-symlink

kube-proxy
--resource-container

Ang scheduler ay nagsimulang gumamit ng bersyon v1beta1 ng Event API. Kung gumagamit ka ng mga tool ng third-party upang makipag-ugnayan sa Event API, lumipat sa pinakabagong bersyon.

Isang sandali ng katatawanan. Sa panahon ng paghahanda ng release 1.16, ang mga sumusunod na pagbabago ay ginawa:

  • inalis ang anotasyon scheduler.alpha.kubernetes.io/critical-pod sa bersyon v1.16.0-alpha.1
  • ibinalik ang anotasyon scheduler.alpha.kubernetes.io/critical-pod sa bersyon v1.16.0-alpha.2
  • inalis ang anotasyon scheduler.alpha.kubernetes.io/critical-pod sa bersyon v1.16.0-beta.1

Gamitin ang field spec.priorityClassName upang ipahiwatig ang kahalagahan ng pod.

Pinagmulan: www.habr.com

Magdagdag ng komento