O Container Service for Kubernetes (ACK) está em conformidade com o Certified Kubernetes Conformance Program. Este tópico descreve as alterações no ACK para oferecer suporte ao Kubernetes 1.16.
O Kubernetes 1.16 remove várias versões de API por padrão. Verifique se suas cargas de trabalho utilizam as APIs obsoletas listadas abaixo antes de atualizar. O ACK estendeu a compatibilidade retroativa dessas APIs até o Kubernetes 1.16.6, mas o suporte termina no Kubernetes 1.18.
Versões dos componentes
|
Componente |
Versão |
Alterações |
|
Kubernetes |
1.16.9 |
|
|
Kubernetes |
1.16.6 |
CoreDNS atualizado da versão 1.3.1 (Kubernetes 1.14) para a 1.6.2. O plugin |
|
Docker |
19.03.5 (containerd 1.2.10) |
Consulte Alterações no Docker 19.03.5. |
|
etcd |
3.4.3 |
— |
Novidades do Kubernetes 1.16
APIs obsoletas
As seguintes versões de API foram removidas por padrão no Kubernetes 1.16. Ação necessária: verifique se suas cargas de trabalho utilizam essas APIs e atualize seus manifestos para as versões substitutas antes de prosseguir com a atualização.
|
API obsoleta |
Substituta |
|
|
|
|
|
|
|
|
|
|
|
|
O ACK manteve a compatibilidade retroativa dessas APIs até o Kubernetes 1.16.6. O suporte termina no Kubernetes 1.18. Atualize seus manifestos e ferramentas antes de migrar para o Kubernetes 1.18.
Melhorias de desempenho
O Kubernetes 1.16.6 traz os seguintes avanços em relação ao Kubernetes 1.14:
Agendamento PodAffinity: aproximadamente 100% mais rápido.
Operações de listagem: a listagem de pods ficou 40% mais rápida; a de nós, 30%.
Server-side apply: desempenho aprimorado no processamento de objetos map grandes.
Heartbeat de nó: o heartbeat baseado em lease reduz a carga do servidor de API e do etcd em 50.000 consultas por minuto em um cluster com 8.000 nós.
Criação de pods: para pods stateless (sem ConfigMaps, Secrets ou volumes), 99% iniciam em até 5 segundos após o pull das imagens. O tempo de criação do 1% mais lento caiu de cerca de 5 segundos (Kubernetes 1.14) para aproximadamente 3 segundos (Kubernetes 1.16.6).
Alterações nos parâmetros de segurança do Kubelet
Os seguintes parâmetros do kubelet tornaram-se obsoletos e foram removidos: AllowPrivileged, HostNetworkSources, HostPIDSources e HostIPCSources. O controle de acesso agora é gerenciado via PodSecurityPolicy e mecanismos equivalentes.
Recursos com disponibilidade geral
CustomResourceDefinitions (CRDs)
Admission webhooks
Alterações no Docker 19.03.5
Melhorias de desempenho:
BuildKit nativo acelera a compilação de imagens.
Detecção otimizada de systemd para runc diminui o tempo de inicialização e o consumo de memória dos contêineres.
Correções de bugs:
Resolvido problema de reinicializações intermitentes de pods durante verificações de integridade exec probe.
Corrigida a CVE-2018-15664 (exposta pelo comando
docker cp).Solucionada falha que deixava o Docker sem resposta quando um rich container executando múltiplos processos era encerrado.
Eliminado vazamento de handle no containerd.
Aprimoramentos do ACK no Kubernetes 1.16.6
Estabilidade e desempenho
Inclusão de novas tentativas para operações idempotentes, aumentando a taxa de sucesso na criação de clusters.
Contêineres em execução não são mais reiniciados durante atualizações do kubelet.
Correção de falhas na inicialização do kubelet causadas por hugetlb.
Observabilidade
Otimização dos logs de liveness probe do Server Load Balancer (SLB) enviados ao servidor de API.
Ajuste no nível de log do aggregationcontroller.
Saída aprimorada para o comando
get csem clusters gerenciados pelo ACK.Métricas de monitoramento otimizadas para contêineres em sandbox, mantendo a compatibilidade com as APIs de métricas existentes.