Usar as APIs Beta do Kubernetes com clusters do GKE


Use as APIs Beta do Kubernetes para acessar novos recursos nos seus clusters do Google Kubernetes Engine (GKE). Para usar as APIs Beta introduzidas na versão 1.24 ou mais recente, configure as APIs Beta.

Como os novos recursos são introduzidos com a API Kubernetes

Os clusters do GKE consistem em um plano de controle e nós de trabalho. O plano de controle expõe o servidor de API, que expõe a API Kubernetes para que os usuários finais e os componentes internos e externos possam se comunicar. Essa API evolui ao longo do tempo, com novos recursos sendo introduzidos nos estágios Alfa ou Beta e, depois, mudando para a disponibilidade geral (GA) ou sendo suspensos e removidos nas versões secundárias mais recentes.

Só é possível usar APIs Alfa com clusters Alfa, mas é possível usar APIs Beta com todos os tipos de clusters do GKE. A partir da versão 1.24 do Kubernetes, as novas APIs Beta são desativadas por padrão em novos clusters. Os clusters atuais criados com uma versão anterior à 1.24 mantêm as APIs Beta ativadas, como ativadas automaticamente (introduzidas antes da 1.24) ou APIs Beta ativadas manualmente (introduzidas na versão 1.24 ou mais recentes) não podem ser desativadas nos clusters atuais. Para todos os clusters, as APIs Beta existentes introduzidas antes da versão 1.24 permanecem ativadas por padrão, e as novas versões de APIs Beta atuais também permanecem ativadas por padrão.

Por exemplo, se uma API v1beta1 for introduzida no Kubernetes versão 1.22, uma nova versão dessa API Beta, como v1beta3, será introduzida no Kubernetes versão 1.25, a API será automaticamente ativada. Isso acontece porque é uma versão nova de uma API Beta existente, não uma API completamente nova. No entanto, uma nova API Beta com a versão v1beta1 introduzida no Kubernetes versão 1.24 ou posterior está desativada por padrão.

Para usar APIs Beta introduzidas com a versão 1.24 e posteriores, configure as APIs Beta por recurso por cluster. É possível ativar APIs na criação do cluster ou para um cluster atual. Para ver quais APIs Beta estão disponíveis para a versão secundária do cluster, consulte as APIs Beta disponíveis.

Depois de ativar uma API Beta, ela permanecerá ativada até que a API Beta seja suspensa e o cluster seja atualizado para a versão secundária de onde a API é removida. Para saber quais APIs Beta seu cluster ativou, consulte Verificar quais APIs Beta estão ativadas.

APIs Beta disponíveis

É possível ativar um subconjunto de APIs Beta do Kubernetes para os clusters do GKE. Outras APIs Beta não estão disponíveis por motivos como:

  • A API Beta depende de recursos do Kubernetes que não estão em GA.
  • A API Beta não é segura.
  • A API Beta não é compatível com o Autopilot.

Consulte a tabela a seguir para conferir as APIs Beta e a versão secundária correspondente em que elas foram introduzidas:

Versão do Kubernetes APIs Beta adicionadas a esta versão secundária Disponível com o GKE Observações
1.29
  • Nenhuma
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
É necessário ativar as duas APIs ao mesmo tempo. Isso ativa o recurso Beta Validar a política de admissão.
1.28
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
  • Nenhuma
1.27
  • authentication.k8s.io/v1beta1/selfsubjectreviews
  • authentication.k8s.io/v1beta1/selfsubjectreviews

Considerações antes de usar as APIs Beta

As APIs Beta do Kubernetes estão sujeitas à política de suspensão de uso do Kubernetes. Quando o uso de uma API Beta for suspenso, será necessário interromper o uso dela. Para saber mais, consulte as suspensões de uso da API Beta.

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

  • Ativar a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a Google Cloud CLI para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando gcloud components update.

Configurar APIs Beta

As APIs Beta são ativadas por recurso e por cluster. É possível ativar APIs ao criar um cluster ou para um cluster existente.

Para listar um recurso da API Beta para esses comandos, use a representação {group}/{version}/{resource}. A versão deve ser beta. Um exemplo dessa representação válida é authentication.k8s.io/v1beta1/selfsubjectreviews.

Para os comandos na próxima seção, substitua as seguintes variáveis:

  • CLUSTER_NAME: o nome do cluster que você quer atualizar.
  • LIST_OF_APIS: a lista de APIs Beta que você quer ativar, em uma lista separada por vírgulas.
  • COMPUTE_REGION: a região do Compute Engine para o novo cluster. Para clusters zonais, use --zone=COMPUTE_ZONE.

Criar novo cluster com APIs Beta ativadas

Crie um novo cluster com uma lista de APIs Beta ativadas:

gcloud container clusters create-auto CLUSTER_NAME  \
    --enable-kubernetes-unstable-apis=LIST_OF_APIS \
    --region=COMPUTE_REGION

Ativar APIs Beta em um cluster existente

Ative uma lista de APIs Beta em um cluster existente:

gcloud container clusters update CLUSTER_NAME  \
    --enable-kubernetes-unstable-apis=LIST_OF_APIS \
    --region=COMPUTE_REGION

Desativar APIs Beta em um cluster existente

Não é possível desativar APIs Beta que já estejam ativadas em um cluster. As APIs Beta permanecem disponíveis até que sejam suspensas e o cluster seja atualizado para a versão secundária, em que a API é removida. Para saber mais, consulte as suspensões de uso da API Beta.

Verificar quais APIs Beta estão ativadas

Verifique quais APIs Beta estão ativadas para o cluster do GKE:

gcloud container clusters describe CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --format="value(enableK8sBetaApis.enabledApis)"

Suspensão de uso da API Beta

Depois que uma API Beta é ativada, ela permanece ativa até que ela seja suspensa e o cluster seja atualizado para a versão secundária em que a API é removida.

Normalmente, as APIs Beta estão disponíveis para três versões secundárias antes de serem descontinuadas e substituídas por uma nova versão Beta, uma versão estável ou sem substituição. As versões Beta das APIs são removidas três versões secundárias após a suspensão de uso. Se você estiver usando uma API Beta obsoleta e removida em uma versão secundária do Kubernetes, será necessário migrar para as APIs compatíveis para que o cluster possa ser atualizado para a versão secundária em que a API Beta está. removido. Para saber mais, consulte Como as descontinuações do Kubernetes funcionam com o GKE.

O GKE facilita esse processo tentando detectar o uso de APIs obsoletas do Kubernetes. Se o GKE detectar o uso de uma API obsoleta, ele pausará os upgrades automáticos na versão secundária da qual essa API foi removida. O GKE também compartilha insights e recomendações de suspensão de uso para notificá-lo sobre o uso do seu cluster de uma API obsoleta para que você possa tomar providências para que os upgrades continuem. Para saber mais, consulte Avaliar e mitigar a exposição a futuras suspensões de uso do Kubernetes.

Consulte a tabela de suspensão de uso da Kubernetes API para uma lista completa de APIs obsoletas e se o GKE detecta o uso.

A seguir