Cursos

[Noticias][grids]

O que há de novo no Kubernetes v1.22?

 

O Kubernetes v1.22 é um novo lançamento de recurso que adiciona mais de 50 melhorias à plataforma de orquestração de contêineres. Ele também suspende alguns recursos e remove várias APIs que foram substituídas por versões de substituição.

Aqui está o resumo das mudanças mais significativas, começando com as adições de recursos.

Aplicar do lado do servidor

O Apply do lado do servidor saiu da versão beta e está geralmente disponível para todos os usuários. É um novo mecanismo para facilitar o gerenciamento declarativo de recursos por usuários e controladores de cluster.

Usar o Server-side Apply permite que os desenvolvedores iniciem mudanças de recursos, descrevendo suas intenções. O servidor da API Kubernetes rastreia as alterações nos objetos campo a campo. Este “ gerenciamento de campo ” O sistema cria um modelo de propriedade em que as alterações em um campo adicionado por outro gerente são rejeitadas automaticamente. Isso evita a reversão acidental de uma operação iniciada por outro administrador.

Antes da aplicação do lado do servidor, a lógica para identificar os campos de recursos que precisavam de uma atualização fazia parte do comando kubectl apply do lado do cliente. Agora, isso é elevado ao servidor, tornando mais fácil para os controladores aplicarem suas próprias alterações de configuração e facilitando os novos recursos de controle de acesso. As alterações em campos individuais são registradas, não apenas o último estado aplicado por cada usuário.

Publicidade

Os recursos ganham uma nova propriedade managedFields quando o Aplicar do lado do servidor com gerenciamento de campo está ativo. Ele registra cada campo, os dados associados a ele e a hora da última atualização. Editar manualmente managedFields é possível, mas fortemente desencorajado; pretende-se que apenas o servidor da API Kubernetes grave esses valores.

O gerenciamento de campo vem com suporte para resolução de conflitos e quatro estratégias diferentes de fusão. Eles permitem que você personalize o que acontece quando você tenta editar um campo que já foi alterado por outro usuário. Você pode forçar a aplicação das alterações, se necessário, transferindo a propriedade para o novo usuário.

Provedores de credenciais externas

Os provedores de credenciais externos também mudaram para o estável. Eles permitem que você use plug-ins para obter credenciais, como tokens de autenticação e certificados TLS de fora do seu cluster.

O recurso permite integrar o controle de acesso do Kubernetes aos provedores de autenticação existentes. Os provedores podem autenticá-lo usando sistemas OAuth2, LDAP e SAML, para que você possa fazer login usando suas credenciais existentes para serviços populares.

Os provedores são implementados como plug-ins com um componente do lado do servidor em execução no cluster. Isso usa um webhook especial para converter tokens específicos do cliente em um formato que o servidor da API Kubernetes possa interpretar.

Executando sem Root

Ambientes de alta segurança podem obter maior proteção executando o plano de controle do Kubernetes como um usuário não root. Este é um recurso alfa disponível para novas implantações de cluster. Isso ajuda a mitigar os riscos de um comprometimento do plano de controle bem-sucedido, fornecendo acesso ilimitado ao seu host.

Publicidade

Iniciar um cluster como um usuário não root requer que você habilite a porta RootlessControlPlanefeature. O plano de controle deve então iniciar sem usar sudo.

Há suporte semelhante para a execução de componentes individuais no nível do nó em um ambiente não raiz. Kubelet, kube-proxy e o tempo de execução do contêiner agora têm essa capacidade, ajudando a fortalecer a segurança da sua instalação.

Remoções de API

Como uma nova versão secundária, a v1.22 descontinua alguns recursos existentes em vários componentes do Kubernetes. Estes são principalmente comandos, sinalizadores e alguns plug-ins de autenticação e armazenamento. Os recursos afetados permanecem disponíveis, mas podem ser descartados no futuro.

v1.22 também remove 12 APIs anteriormente obsoletas. As APIs removidas são todas as versões beta que foram substituídas por alternativas estáveis ​​mais recentes.

A lista inclui os recursos Ingress e IngressClass usados ​​para expor serviços com regras de roteamento. As versões networking.k8s. io/v1beta1 desses objetos devem ser substituídas por suas contrapartes networking.k8s. io/v1 que permanecem com suporte.

Outras APIs removidas incluem as versões beta de APIService, CertificateSigningRequest, CustomResourceDefinition e Lease, bem como vários objetos relacionados a controle de acesso, armazenamento e programação. Revise o guia de migração antes de aplicar o upgrade ao seu cluster. Você precisará alterar todos os recursos usando as APIs removidas para que façam referência às novas versões estáveis.

A próxima versão do Kubernetes a incluir remoções será a v1.25. No momento, isso está programado para remover quatro APIs beta: CronJob, EndpointSlice, Event e PodDisruptionBudget.

Outras mudanças

Esta versão traz muitas outras pequenas adições e melhorias, incluindo suporte alfa para memória swap, uma experiência aprimorada ao executar Kubernetes no Windows e a capacidade de usar cgroups v2 para definir a alocação de memória e restrições de isolamento em pods.

Publicidade

Etcd, o armazenamento de configuração usado pelo servidor da API Kubernetes, mudou para a v3.5.0. Isso melhora os recursos de registro com um novo formato estruturado e rotação integrada de arquivos. O projeto também entregou melhorias significativas de desempenho para acelerar algumas operações comuns do Kubernetes.

Várias APIs beta agora estão marcadas como estáveis, incluindo tokens de conta de serviço vinculados e o objeto PodDisruptionBudget para especificar contagens mínimas de réplicas simultâneas. O Kubernetes também pode avisá-lo quando você usar uma API obsoleta, tornando mais fácil permanecer no caminho estável. Você verá essas mensagens conforme aplica recursos ao seu cluster.

Nova cadência de lançamento

v1.22 marca o início de uma nova cadência de lançamento regular para atualizações do Kubernetes. Os recursos agora serão lançados quatro vezes por ano em vez de três, criando um ciclo de desenvolvimento ligeiramente mais longo que oferece mais chances de otimizar e manter a qualidade do lançamento. Ele também oferece mais espaço para respirar para administradores de cluster que agora têm um mês extra entre as migrações.

De acordo com esta programação, o Kubernetes v1.23 deve chegar no início de dezembro de 2021. Cada ciclo tem um tempo de desenvolvimento estimado de 15 semanas. Atualizações regulares de patch ainda serão lançadas em sua cadência mensal existente, com correções de bugs críticos chegando mais cedo, quando necessário.

Resumo

O Kubernetes v1.22 é uma atualização de marco que leva o projeto a uma nova cadência de lançamento. Isso ajudará os administradores de cluster a planejarem atualizações futuras, proporcionando mais tempo de migração antes que a próxima chegue.

Publicidade

Em termos de novos recursos, a adição mais significativa é, sem dúvida, o Aplicar do lado do servidor. Isso simplifica o uso de configurações de recursos declarativos, elevando a lógica do kubectl para o cluster. Espera-se que eventualmente substitua a implementação original do kubectl apply.

A atualização para a v1.22 pode exigir uma ação se você ainda estiver usando qualquer uma das APIs beta removidas. Você deve ser capaz de substituí-los por suas versões estáveis, embora isso possa significar modificar seus recursos em alguns casos. Dedicar algum tempo agora para resolver as novas descontinuações na v1.22 ajudará você a se preparar para quando a v1.23 chegar, facilitando o processo de migração dessa versão.