Kubernetes 1.16 - come aggiornarsi senza rompere nulla

Kubernetes 1.16 - come aggiornarsi senza rompere nulla

Oggi, 18 settembre, esce una nuova versione di Kubernetes — 1.16. Come sempre, ci aspettano molte migliorie e novità. Ma vorrei attirare la vostra attenzione sulle sezioni Action Required del file CHANGELOG-1.16.md. In queste sezioni vengono pubblicate modifiche che potrebbero compromettere il funzionamento della vostra applicazione, degli strumenti per la gestione del cluster o che richiedono modifiche ai file di configurazione.

In generale, richiedono un intervento manuale…

Iniziamo subito con il cambiamento che probabilmente influenzerà tutti coloro che lavorano con Kubernetes da abbastanza tempo. L'API di Kubernetes ha smesso di supportare le versioni obsolete delle API delle risorse.

Se qualcuno non lo sapeva, o lo avesse dimenticato…La versione dell'API della risorsa è specificata nel manifesto, nel campo apiVersion: apps/v1

Cioè:

Tipo di risorsa
Vecchia versione
A cosa bisogna sostituirla

Tutte le risorse
apps/v1beta1
apps/v1beta2
apps/v1

deployments
daemonset
replicaset
extension/v1beta1
apps/v1

networkpolicies
extensions/v1beta1
networking.k8s.io/v1

podsecuritypolicies
extensions/v1beta1
policy/v1beta1

Vorrei anche sottolineare che per gli oggetti di tipo Ingress c'è stata anche una modifica apiVersion in networking.k8s.io/v1beta1. Il vecchio valore extensions/v1beta1 è ancora supportato, ma ci sono buone ragioni per aggiornare anche questa versione nei manifesti.

Ci sono molte modifiche a diverse etichette di sistema (Node labels) che vengono impostate sui nodi.

A Kubelet è vietato impostare etichette arbitrarie (in precedenza si poteva farlo tramite le opzioni di avvio kubelet --node-labels), sono rimaste solo queste etichette autorizzate:

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

Tag beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready e beta.kubernetes.io/kube-proxy-ds-ready non vengono più aggiunti ai nuovi nodi, e diversi componenti aggiuntivi hanno iniziato a utilizzare etichette diverse come node selector:

Componente
Vecchia etichetta
Etichetta attuale

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

Kubeadm ora rimuove il file di configurazione iniziale del kubelet. bootstrap-kubelet.confSe i vostri strumenti facevano riferimento a questo file, passate all'utilizzo di kubelet.conf, in cui sono memorizzate le impostazioni di accesso attuali.

Cadvisor non restituisce più metriche pod_name e container_name, se li utilizzavate in Prometheus, passate alle metriche pod e container rispettivamente.

Sono state rimosse le chiavi della riga di comando:

Componente
Chiave rimossa

hyperkube
—make-symlink

kube-proxy
—resource-container

Lo scheduler ha iniziato a utilizzare la versione v1beta1 dell'Event API. Se utilizzi strumenti di terze parti per interagire con l'Event API, passa alla versione più recente.

Un momento di umorismo. Durante la preparazione del rilascio 1.16 sono state apportate le seguenti modifiche:

  • rimossa l'annotazione scheduler.alpha.kubernetes.io/critical-pod nella versione v1.16.0-alpha.1
  • ripristinata l'annotazione scheduler.alpha.kubernetes.io/critical-pod nella versione v1.16.0-alpha.2
  • rimossa l'annotazione scheduler.alpha.kubernetes.io/critical-pod nella versione v1.16.0-beta.1

Utilizza il campo spec.priorityClassName per specificare l'importanza del pod.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS - ProHoster