
Hoje, 18 de setembro, lançamos mais uma versão do Kubernetes — 1.16. Como sempre, temos muitas melhorias e novidades. Mas gostaria de chamar sua atenção para as seções Action Required do arquivo . Nestas seções, são publicadas alterações que podem quebrar o funcionamento do seu aplicativo, ferramentas de manutenção do cluster ou exigem alterações nos arquivos de configuração.
Em geral, elas exigem intervenção manual…
Vamos começar imediatamente com uma mudança que, provavelmente, afetará todos que trabalham com Kubernetes há um bom tempo. A API do Kubernetes deixou de dar suporte a versões obsoletas da API de recursos.
Se alguém não sabia ou se esqueceu…A versão da API do recurso é indicada no manifesto, no campo apiVersion: apps/v1
Ou seja:
Tipo de recurso
Versão antiga
O que deve ser substituído
Todos os recursos
apps/v1beta1
apps/v1beta2
apps/v1
implantações
daemonset
replicaset
extension/v1beta1
apps/v1
networkpolicies
extensions/v1beta1
networking.k8s.io/v1
podsecuritypolicies
extensions/v1beta1
policy/v1beta1
Quero também chamar a atenção de que objetos do tipo Ingress também mudaram apiVersion para networking.k8s.io/v1beta1. O valor antigo extensions/v1beta1 ainda é suportado, mas há um bom motivo para atualizar também esta versão nos manifestos.
Há muitas mudanças em vários rótulos de sistema (Node labels) que são atribuídos aos nós.
O Kubelet agora proíbe a atribuição de rótulos arbitrários (anteriormente, eles podiam ser definidos por meio das opções de inicialização kubelet --node-labels), apenas este conjunto foi mantido :
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 e beta.kubernetes.io/kube-proxy-ds-ready não são mais adicionados a novos nós, e vários componentes adicionais começaram a usar rótulos um pouco diferentes como node selector:
Componente
Rótulo antigo
Rótulo atual
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
o kubeadm agora remove o arquivo de configuração inicial do kubelet bootstrap-kubelet.conf. Se suas ferramentas acessavam este arquivo, mude para usar kubelet.conf, que contém as configurações de acesso atuais.
O Cadvisor não fornece mais métricas pod_name e container_name, se você os usou no Prometheus, migre para métricas pod e container respectivamente.
As chaves da linha de comando foram removidas:
Componente
Chave removida
hyperkube
—make-symlink
kube-proxy
—resource-container
O escalonador passou a usar a versão v1beta1 da API de Eventos. Se você utiliza ferramentas de terceiros para interagir com a API de Eventos, mude para a versão atual.
Um momento de humor. Durante a preparação do lançamento 1.16, foram feitas as seguintes alterações:
- removida a anotação
scheduler.alpha.kubernetes.io/critical-podna versão v1.16.0-alpha.1 - a anotação foi recuperada
scheduler.alpha.kubernetes.io/critical-podna versão v1.16.0-alpha.2 - removida a anotação
scheduler.alpha.kubernetes.io/critical-podna versão v1.16.0-beta.1
Use o campo spec.priorityClassName para especificar a importância do pod.
Fonte: habr.com
