
Hoy, 18 de septiembre, se lanza una nueva versión de Kubernetes: 1.16. Como siempre, nos esperan muchas mejoras y novedades. Sin embargo, me gustaría llamar su atención sobre las secciones de Acción Requerida del archivo . En estas secciones se publican los cambios que pueden romper el funcionamiento de su aplicación, de las herramientas de mantenimiento del clúster o que requieren ajustes en los archivos de configuración.
En general, requieren intervención manual...
Empecemos directamente con el cambio que probablemente afecte a todos los que han estado trabajando con Kubernetes durante bastante tiempo. La API de Kubernetes ha dejado de soportar versiones antiguas de la API de recursos.
Si alguien no lo sabía, o lo olvidó...La versión de la API de recursos se indica en el manifiesto, en el campo apiVersion: apps/v1
Es decir:
El tipo de recurso
Versión antigua
Con qué debe ser reemplazada
Todos los recursos
apps/v1beta1
apps/v1beta2
apps/v1
despliegues
daemonset
replicaset
extension/v1beta1
apps/v1
networkpolicies
extensions/v1beta1
networking.k8s.io/v1
podsecuritypolicies
extensions/v1beta1
policy/v1beta1
También quiero resaltar que los objetos de tipo Ingress también han cambiado apiVersion en networking.k8s.io/v1beta1. El valor antiguo extensions/v1beta1 aún está soportado, pero hay un buen motivo para actualizar también esta versión en los manifiestos.
Hay muchos cambios en varias etiquetas del sistema (Node labels) que se establecen en los nodos.
Se prohibió a Kubelet establecer etiquetas arbitrarias (antes se podían asignar a través de las claves de inicio kubelet --node-labels), solo se dejó esta lista :
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/*
Etiquetas beta.kubernetes.io/metadata-proxy-ready, beta.kubernetes.io/metadata-proxy-ready y beta.kubernetes.io/kube-proxy-ds-ready ya no se añaden en nuevos nodos, y varios componentes adicionales han comenzado a usar etiquetas ligeramente diferentes como selector de nodo:
Componente
Etiqueta antigua
Etiqueta actual
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 ahora elimina el archivo de configuración inicial del kubelet bootstrap-kubelet.conf. Si sus herramientas accedían a este archivo, cambie a usar kubelet.conf, donde se almacenan las configuraciones de acceso actuales.
Cadvisor ya no proporciona métricas pod_name y container_name, si las estaba utilizando en Prometheus, cambie a las métricas pod y container correspondientemente.
Se han eliminado las claves de línea de comandos:
Componente
Clave eliminada
hyperkube
—make-symlink
kube-proxy
—resource-container
El programador comenzó a utilizar la versión v1beta1 del Event API. Si utiliza herramientas de terceros para interactuar con el Event API, cambie a la versión actual.
Un momento de humor. En el proceso de preparación de la versión 1.16 se realizaron los siguientes cambios:
- se eliminó la anotación
scheduler.alpha.kubernetes.io/critical-poden la versión v1.16.0-alpha.1 - se restauró la anotación
scheduler.alpha.kubernetes.io/critical-poden la versión v1.16.0-alpha.2 - se eliminó la anotación
scheduler.alpha.kubernetes.io/critical-poden la versión v1.16.0-beta.1
Utilice el campo spec.priorityClassName para indicar la importancia del pod.
Fuente: habr.com
