Kubernetes 1.16 - kuinka päivittää rikkomatta mitään

Kubernetes 1.16 - kuinka päivittää rikkomatta mitään

Tänään, 18. syyskuuta, julkaistaan ​​Kubernetesin seuraava versio - 1.16. Kuten aina, monet parannukset ja uudet tuotteet odottavat meitä. Haluaisin kuitenkin kiinnittää huomiosi tiedoston toimenpiteitä vaadittaviin osiin CHANGELOG-1.16.md. Näissä osioissa julkaistaan ​​muutoksia, jotka voivat rikkoa sovelluksesi, klusterin ylläpitotyökalut tai vaatia muutoksia määritystiedostoihin.

Yleensä ne vaativat manuaalista puuttumista...

Aloitetaan heti muutoksella, joka vaikuttaa todennäköisesti kaikkiin, jotka ovat työskennelleet kuberneteksen kanssa tarpeeksi kauan. Kubernetes API ei enää tue vanhoja resurssien API-versioita.

Jos joku ei tiennyt tai unohtanut...Resurssin API-versio on ilmoitettu luettelossa, kentässä apiVersion: apps/v1

Nimittäin

Resurssin tyyppi
vanha versio
Millä se pitäisi korvata?

Kaikki resurssit
apps/v1beta1
apps/v1beta2
sovellukset / v1

käyttöönotot
daemonset
replikaatti
laajennus/v1beta1
sovellukset / v1

verkkopolitiikat
laajennukset/v1beta1
networking.k8s.io/v1

podturvallisuuspolitiikkaa
laajennukset/v1beta1
käytäntö/v1beta1

Haluaisin myös kiinnittää huomionne siihen, että esineitä tyyppi Ingress myös muuttunut apiVersion päälle networking.k8s.io/v1beta1. Vanha merkitys extensions/v1beta1 on edelleen tuettu, mutta on hyvä syy päivittää tämä versio luetteloissa samanaikaisesti.

Solmuihin asennetuissa eri järjestelmätunnisteissa (Node labels) on melko paljon muutoksia.

Kubeletia kiellettiin asettamasta mielivaltaisia ​​tunnisteita (aiemmin ne voitiin asettaa käynnistysnäppäimillä kubelet --node-labels), he jättivät vain tämän luettelon sallittu:

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

Tunnisteet beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready ja beta.kubernetes.io/kube-proxy-ds-ready eivät enää ole lisättyjä uusiin solmuihin, ja useat lisäkomponentit ovat alkaneet käyttää hieman erilaisia ​​tunnisteita solmuvalitsimina:

komponentti
Vanha etiketti
Nykyinen etiketti

kube-välityspalvelin
beta.kubernetes.io/kube-proxy-ds-ready
node.kubernetes.io/kube-proxy-ds-ready

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

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

kubeadm poistaa nyt alkuperäisen kubletin määritystiedoston sen takaa bootstrap-kubelet.conf. Jos työkalusi käyttivät tätä tiedostoa, vaihda käyttämään kubelet.conf, joka tallentaa nykyiset käyttöasetukset.

Cadvisor ei enää tarjoa mittareita pod_name и container_nameJos käytit niitä Prometheuksessa, siirry mittareihin pod и container vastaavasti.

Avaimet poistettiin rivikomennolla:

komponentti
Sisään vedetty avain

hyperkube
--make-symlink

kube-välityspalvelin
--resurssi-säilö

Ajastin alkoi käyttää Event API:n versiota v1beta1. Jos käytät kolmannen osapuolen työkaluja vuorovaikutuksessa Event API:n kanssa, vaihda uusimpaan versioon.

Hetki huumoria. Julkaisun 1.16 valmistelun aikana tehtiin seuraavat muutokset:

  • poisti huomautuksen scheduler.alpha.kubernetes.io/critical-pod versiossa v1.16.0-alpha.1
  • palautti huomautuksen scheduler.alpha.kubernetes.io/critical-pod versiossa v1.16.0-alpha.2
  • poisti huomautuksen scheduler.alpha.kubernetes.io/critical-pod versiossa v1.16.0-beta.1

Käytä kenttää spec.priorityClassName osoittamaan kotelon tärkeyttä.

Lähde: will.com

Lisää kommentti