Use APIs beta do Kubernetes com clusters do GKE


Use as APIs beta do Kubernetes para aceder a novas funcionalidades nos seus clusters do Google Kubernetes Engine (GKE). Para usar APIs beta introduzidas com a versão 1.24 ou posterior, configure as APIs beta.

Como são introduzidas novas funcionalidades com a API Kubernetes

Os clusters do GKE consistem num painel de controlo e nós de trabalho. O plano de controlo expõe o servidor da API, que expõe a API Kubernetes para que os utilizadores finais, juntamente com os componentes internos e externos, possam comunicar. Esta API evolui ao longo do tempo, com novas funcionalidades introduzidas nas fases alfa ou beta e, posteriormente, a passar para disponibilidade geral (DG) ou a ser descontinuada e removida em versões secundárias mais recentes.

Só pode usar APIs alfa com clusters alfa, mas pode usar APIs beta com todos os tipos de clusters do GKE. A partir da versão 1.24 do Kubernetes, as novas APIs beta estão desativadas por predefinição nos novos clusters. Os clusters existentes criados com uma versão anterior à 1.24 mantêm as APIs beta existentes ativadas, uma vez que as APIs beta ativadas automaticamente (introduzidas antes da versão 1.24) ou ativadas manualmente (introduzidas na versão 1.24 ou posterior) não podem ser desativadas em clusters existentes. Para todos os clusters, as APIs beta existentes introduzidas antes da versão 1.24 permanecem ativadas por predefinição, e as novas versões das APIs beta existentes também permanecem ativadas por predefinição.

Por exemplo, se uma API v1beta1 foi introduzida na versão 1.22 do Kubernetes, e uma nova versão desta API beta, como v1beta3, for introduzida na versão 1.25 do Kubernetes, a API é ativada automaticamente. Isto acontece porque é uma nova versão de uma API beta existente e não uma API beta completamente nova. No entanto, uma nova API beta com a versão v1beta1 introduzida na versão 1.24 do Kubernetes ou posterior está desativada por predefinição.

Para usar as APIs beta introduzidas com a versão 1.24 e posteriores, tem de configurar as APIs beta por recurso por cluster. Pode ativar APIs durante a criação do cluster ou para um cluster existente. Para ver que APIs beta estão disponíveis para a versão secundária do seu cluster, consulte as APIs beta disponíveis.

Depois de ativar uma API beta, esta permanece ativada até ser descontinuada e o cluster ser atualizado para a versão secundária em que a API é removida. Para ver que APIs beta o seu cluster tem ativadas, consulte o artigo Verifique que APIs beta estão ativadas.

APIs beta do Kubernetes e gates de funcionalidades do Kubernetes

Os Feature Gates são um mecanismo distinto para a ativação de funcionalidades das APIs Kubernetes e são geridos de forma diferente pelos clusters do GKE. Algumas APIs Kubernetes e Kubernetes feature gates funcionam em conjunto. Certifique-se de que compreende a ligação entre APIs e gates de funcionalidades específicos. Para mais informações, consulte Feature gates.

APIs beta disponíveis

Pode ativar um subconjunto de APIs beta do Kubernetes para os seus clusters do GKE. Outras APIs beta não estão disponíveis por motivos como os seguintes:

  • A API beta baseia-se em funcionalidades do Kubernetes não GA.
  • A API beta não é segura.
  • A API beta não é compatível com o Autopilot.

Consulte a tabela seguinte para ver as APIs beta e a versão secundária correspondente em que foram introduzidas:

Versão do Kubernetes APIs beta adicionadas com esta versão secundária do Kubernetes Disponível com o GKE Notas
1.32
  • resource.k8s.io/v1beta1/deviceclasses
  • resource.k8s.io/v1beta1/resourceclaims
  • resource.k8s.io/v1beta1/resourceclaimtemplates
  • resource.k8s.io/v1beta1/resourceslices
  • resource.k8s.io/v1beta1/deviceclasses
  • resource.k8s.io/v1beta1/resourceclaims
  • resource.k8s.io/v1beta1/resourceclaimtemplates
  • resource.k8s.io/v1beta1/resourceslices

Tem de ativar todas as APIs resource.k8s.io listadas ao mesmo tempo e garantir que os nós usam as APIs beta recém-ativadas. Isto ativa a funcionalidade beta do Kubernetes de atribuição dinâmica de recursos num cluster do GKE. Para saber mais, consulte o artigo Atribuição dinâmica de recursos.

1.31
  • storage.k8s.io/v1beta1/volumeattributesclasses
  • networking.k8s.io/v1beta1/ipaddresses
  • networking.k8s.io/v1beta1/servicecidrs
  • storage.k8s.io/v1beta1/volumeattributesclasses
  • networking.k8s.io/v1beta1/ipaddresses
  • networking.k8s.io/v1beta1/servicecidrs

Tem de ativar as 2 APIs networking.k8s.io ao mesmo tempo e garantir que os nós usam as APIs beta recém-ativadas. Isto ativa a funcionalidade beta do Kubernetes de CIDRs de vários serviços num cluster do GKE com a versão 1.31.1-gke.1361000 ou posterior. Para mais detalhes, consulte a nota de lançamento do GKE de 4 de outubro de 2024.

1,29
  • Nenhum
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
Tem de ativar ambas as APIs em simultâneo. Esta opção ativa a funcionalidade beta Validating Admission Policy.
1.28
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicies
  • admissionregistration.k8s.io/v1beta1/validatingadmissionpolicybindings
  • Nenhum
1,27
  • authentication.k8s.io/v1beta1/selfsubjectreviews
  • authentication.k8s.io/v1beta1/selfsubjectreviews

Considerações antes de usar APIs beta

As APIs beta do Kubernetes estão sujeitas à Política de Descontinuação do Kubernetes. Quando uma API beta é descontinuada, tem de interromper a respetiva utilização. Para saber mais, consulte as descontinuações da API Beta.

Antes de começar

Antes de começar, certifique-se de que realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ative a API Google Kubernetes Engine
  • Se quiser usar a CLI gcloud para esta tarefa, instale-a e, em seguida, inicialize-a. Se instalou anteriormente a CLI gcloud, execute gcloud components update para obter a versão mais recente.

Configure APIs beta

As APIs beta são ativadas por recurso por cluster. Pode ativar APIs quando criar um cluster ou para um cluster existente.

Para apresentar um recurso da API beta para estes comandos, use a representação {group}/{version}/{resource}. A versão tem de ser uma versão beta. Um exemplo desta representação válida é authentication.k8s.io/v1beta1/selfsubjectreviews.

Para os comandos na secção seguinte, substitua as seguintes variáveis:

  • CLUSTER_NAME: o nome do cluster que quer atualizar.
  • LIST_OF_APIS: a lista de APIs beta que quer ativar, numa lista separada por vírgulas.
  • CONTROL_PLANE_LOCATION: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais.

Crie um novo cluster com as 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 \
    --location=CONTROL_PLANE_LOCATION

Ative APIs beta num cluster existente

Ative uma lista de APIs beta num cluster existente:

gcloud container clusters update CLUSTER_NAME  \
    --enable-kubernetes-unstable-apis=LIST_OF_APIS \
    --location=CONTROL_PLANE_LOCATION

Certifique-se de que os nós usam as APIs beta recém-ativadas

Algumas funcionalidades beta requerem que a funcionalidade também esteja ativada no kubelet em execução nos nós de trabalho.

Para usar estas funcionalidades da API beta recém-ativadas com cargas de trabalho em execução nos nós de trabalho, o GKE tem de aplicar a alteração aos nós:

  • Para nós em novos grupos de nós padrão e grupos de nós do Autopilot, o GKE ativa as APIs beta.
  • Para nós novos e existentes em pools de nós padrão existentes ou grupos de nós existentes no Autopilot, o GKE aplica a alteração quando os nós são recriados durante as atualizações de nós ou outros tipos de atualizações de nós. Para aplicar imediatamente a alteração aos nós existentes num node pool do cluster padrão, pode atualizar manualmente o node pool para uma versão posterior do GKE. A execução de uma atualização no local não aplica a alteração.

Desative as APIs beta num cluster existente

Não pode desativar APIs beta que já estejam ativadas num cluster. As APIs beta permanecem disponíveis até serem descontinuadas e o cluster ser atualizado para a versão secundária em que a API é removida. Para saber mais, consulte o artigo Descontinuações de APIs beta.

Verifique que APIs beta estão ativadas

Verifique que APIs beta estão ativadas para o seu cluster do GKE:

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

Descontinuações de APIs beta

Depois de ativar uma API beta, esta permanece ativada até ser descontinuada e o cluster ser atualizado para a versão secundária em que a API é removida.

Normalmente, as APIs beta estão disponíveis durante três versões secundárias antes de serem descontinuadas em favor de 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 descontinuação. Se estiver a usar uma API beta que foi descontinuada e vai ser removida numa próxima versão secundária do Kubernetes, tem de migrar para APIs suportadas para que o cluster possa ser atualizado para a versão secundária onde a API beta é removida. Para saber mais, consulte o artigo Como funcionam as descontinuações do Kubernetes com o GKE.

O GKE facilita este processo ao tentar detetar a utilização de APIs Kubernetes descontinuadas. Se o GKE detetar a utilização de uma API descontinuada, pausa as atualizações automáticas para a versão secundária em que essa API é removida. O GKE também partilha estatísticas de descontinuação e recomendações para lhe enviar uma notificação sobre a utilização de uma API descontinuada pelo seu cluster, para que possa tomar medidas para permitir que as atualizações continuem. Para saber mais, consulte o artigo Avalie e mitigue a exposição a descontinuações futuras do Kubernetes.

Consulte a tabela de descontinuações da API Kubernetes para ver uma lista completa das APIs descontinuadas e se o GKE deteta a utilização.

O que se segue?