Kubernetes 1.16 - hoe te upgrade sûnder wat te brekken

Kubernetes 1.16 - hoe te upgrade sûnder wat te brekken

Hjoed, 18 septimber, wurdt de folgjende ferzje fan Kubernetes frijlitten - 1.16. Lykas altyd wachtsje in protte ferbetterings en nije produkten op ús. Mar ik soe graach jo oandacht lûke op 'e seksjes fan aksje nedich fan it bestân CHANGELOG-1.16.md. Dizze seksjes publisearje wizigingen dy't jo applikaasje kinne brekke, ark foar klusterûnderhâld, of wizigingen oan konfiguraasjebestannen fereaskje.

Yn 't algemien fereaskje se manuele yntervinsje ...

Lit ús daliks begjinne mei in feroaring dy't nei alle gedachten sil beynfloedzje elkenien dy't hat wurke mei kubernetes lang genôch. De Kubernetes API stipet net mear legacy boarne API ferzjes.

As immen it net wist of fergeat ...De API-ferzje fan 'e boarne wurdt oanjûn yn it manifest, yn it fjild apiVersion: apps/v1

Nammentlik:

Soart boarne
âlde ferzje
Wat moat wurde ferfongen mei

Alle middels
apps/v1beta1
apps/v1beta2
apps/v1

ynset
daemonset
replikaset
extension/v1beta1
apps/v1

netwurkbelied
extensions/v1beta1
networking.k8s.io/v1

podsecuritypolicies
extensions/v1beta1
belied/v1beta1

Ik soe ek graach meitsje jo oandacht op it feit dat objekten fan type Ingress ek feroare apiVersion op networking.k8s.io/v1beta1. Alde betsjutting extensions/v1beta1 wurdt noch altyd stipe, mar d'r is in goede reden om dizze ferzje tagelyk yn 'e manifesten te aktualisearjen.

D'r binne nochal in protte feroaringen yn ferskate systeemlabels (Node-labels) dy't ynstalleare binne op knopen.

Kubelet waard ferbean om willekeurige labels yn te stellen (earder koene se wurde ynsteld fia startkaaien kubelet --node-labels), lieten se allinich dizze list tastien:

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 en beta.kubernetes.io/kube-proxy-ds-ready wurde net mear tafoege oan nije knooppunten, en ferskate oanfoljende komponinten binne begûn mei it brûken fan wat ferskillende labels as knooppuntselektors:

Komponint
Alde label
Aktuele label

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

ip-masker-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

kubeadm ferwideret no it earste kublet-konfiguraasjetriem der efter bootstrap-kubelet.conf. As jo ​​ark tagong hawwe ta dit bestân, skeakel dan oer nei it brûken kubelet.conf, dy't aktuele tagongsynstellingen bewarret.

Cadvisor leveret gjin metriken mear pod_name и container_nameas jo se brûkten yn Prometheus, gean dan nei metriken pod и container respektivelik.

De kaaien fuortsmiten mei it line kommando:

Komponint
Ynlutsen kaai

hyperkube
--meitsje-symlink

kube-proxy
--boarne-kontainer

De planner begon ferzje v1beta1 fan 'e Event API te brûken. As jo ​​ark fan tredden brûke om te ynteraksje mei de Event API, skeakel dan oer nei de lêste ferzje.

In momint fan humor. Tidens de tarieding fan release 1.16 waarden de folgjende wizigingen makke:

  • de annotaasje fuorthelle scheduler.alpha.kubernetes.io/critical-pod yn ferzje v1.16.0-alpha.1
  • joech de annotaasje werom scheduler.alpha.kubernetes.io/critical-pod yn ferzje v1.16.0-alpha.2
  • de annotaasje fuorthelle scheduler.alpha.kubernetes.io/critical-pod yn ferzje v1.16.0-beta.1

Brûk it fjild spec.priorityClassName om it belang fan de pod oan te jaan.

Boarne: www.habr.com

Add a comment