Nesta página, mostramos como ver insights e recomendações sobre suspensões de uso do Kubernetes para os clusters do Google Kubernetes Engine (GKE). Para saber mais sobre como lidar com as descontinuações do Kubernetes com o GKE, consulte Descontinuações do GKE.
O que são insights e recomendações de suspensão de uso?
Quando o GKE detecta que um cluster está usando um recurso ou API do Kubernetes obsoleto e será removido em uma versão secundária futura, acontecerá o seguinte:
- O upgrade automático para a próxima versão secundária está pausado. Para saber mais sobre como isso funciona, consulte O que acontece quando o GKE pausa os upgrades automáticos.
- Um insight e uma recomendação são gerados para que você possa avaliar e mitigar a exposição do cluster à suspensão de uso.
Os insights e recomendações de suspensão de uso estão disponíveis no Recommender, um serviço que fornece insights e recomendações para usar recursos no Google Cloud. Para saber mais sobre como o Recommender funciona com o GKE, consulte Otimizar o uso do GKE com insights e recomendações.
Para o tópico de suspensão de uso com o Recomendador:
- Um insight explica que seu cluster usa um recurso ou API que está obsoleto e será removido em uma versão secundária futura.
- Uma recomendação fornece orientações sobre o que fazer para reduzir a exposição do cluster à descontinuação.
Por exemplo, um insight pode explicar que seu cluster está usando uma API Beta suspensa e que será removida na próxima versão secundária. A recomendação explica que você precisa migrar suas cargas de trabalho usando as APIs Beta para usar as APIs v1. Cada recomendação inclui uma referência a um guia de migração da API ou do recurso obsoleto. Este guia de migração também está disponível na tabela correspondente para suspensões de uso do Kubernetes.
Quando o GKE gera um par de insights e recomendações, ele abrange
o uso de qualquer API ou recurso descontinuado do Kubernetes em um
subtipo de insight específico para um cluster no seu projeto. Por
exemplo, se um user agent chamar uma das APIs abordadas pelo
subtipo DEPRECATION_K8S_1_22_V1BETA1_API
, um insight e uma recomendação
serão recomendados para migrar esse cluster usando essas APIs. Se
outro cluster também estiver usando essas APIs, o GKE vai gerar outra
instrução e uma recomendação.
Uso de recursos e APIs do Kubernetes descontinuados detectados pelo GKE
Suspensão de uso | Removido na versão do GKE | Subtipo de insight |
---|---|---|
Certificados TLS assinados com o algoritmo SHA-1 | 1,29 | DEPRECATION_K8S_SHA_1_CERTIFICATE |
APIs descontinuadas do Kubernetes 1.29 | 1,29 | DEPRECATION_K8S_1_29_API |
APIs descontinuadas do Kubernetes 1.27 | 1,27 | DEPRECATION_K8S_1_27_API |
APIs obsoletas do Kubernetes 1.26 | 1.26 | DEPRECATION_K8S_1_26_API |
APIs descontinuadas do Kubernetes 1.25 | 1,25 | DEPRECATION_K8S_1_25_API |
PodSecurityPolicy | 1,25 | DEPRECATION_K8S_1_25_PODSECURITYPOLICY |
Imagens de nó com base no Docker | 1.24 | DEPRECATION_K8S_1_24_DOCKERSHIM |
Campo "Nome comum" X.509 em certificados do webhook | 1.23 | DEPRECATION_K8S_1_23_CERTIFICATE |
APIs obsoletas do Kubernetes 1.22 e APIs Beta do Ingress do Kubernetes removidas do GKE 1.23 |
1.22, 1.23 | DEPRECATION_K8S_1_22_V1BETA1_API |
Lembre-se de que para as próximas suspensões de uso, é necessário avaliar de forma independente a exposição do ambiente do cluster e mitigar qualquer problema.
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
.
Funções exigidas
Verifique se você tem as permissões necessárias para gerar insights e recomendações de suspensão de uso do Kubernetes, com os seguintes papéis básicos ou predefinidos:
Veja insights e recomendações com uma das seguintes funções:
Ver e atualizar o estado dos insights e recomendações (por exemplo, dispensar uma recomendação):
Ver insights e recomendações
É possível visualizar insights e recomendações com o Google Cloud CLI, no console do Google Cloud ou com o recomendador de API.
Console
Acesse a página do Google Kubernetes Engine no Console do Google Cloud:
Verifique se há clusters específicos na coluna Notificações para encontrar insights.
Clique no insight para ver mais informações. No painel da barra lateral revelada, é possível ver detalhes sobre esse insight, incluindo qualquer recomendação associada.
gcloud
Um insight geralmente tem uma recomendação correspondente. Os insights são
buscados com gcloud recommender insights
,
e as recomendações são coletadas com gcloud recommender recommendations
.
Veja a lista de insights dos clusters de uma zona específica (para clusters zonais) ou uma região específica (para clusters regionais):
gcloud recommender insights list \ --insight-type=google.container.DiagnosisInsight \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMAT \ --filter="insightSubtype:SUBTYPE"
Substitua:
PROJECT_ID
: o ID do projeto do Google Cloud do projeto em que os clusters estão localizados.LOCATION
: a região ou zona exata do cluster. Para clusters zonais, é preciso fornecer a zona exata (por exemplo,us-central1-c
). Para clusters regionais, você precisa fornecer a região exata (por exemplo,us-central1
).FORMAT
: altere o formato de saída para YAML. Essa flag é opcional.SUBTYPE
: um subtipo de insight, por exemplo,DEPRECATION_K8S_1_23_CERTIFICATE
. Isso limita a saída a insights de um subtipo especificado. Essa flag é opcional.
Ou, se você já tiver um ID de insight, é possível ver detalhes sobre o insight executando o seguinte comando:
gcloud recommender insights describe INSIGHT \ --insight-type=google.container.DiagnosisInsight \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMAT
Substitua
INSIGHT
pelo valor do ID do insight, especificado no fim do URL do camponame
.A saída inclui outros detalhes sobre o comportamento detectado pelo GKE no cluster.
Confira a lista de recomendações para o cluster de uma zona específica (para clusters zonais) ou uma região específica (para clusters regionais):
gcloud recommender recommendations list \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMAT \ --filter="recommenderSubtype:SUBTYPE"
Substitua
SUBTYPE
por um subtipo de recomendador, por exemplo,DEPRECATION_K8S_1_23_CERTIFICATE
. Isso limita a saída a recomendações de um subtipo especificado. Essa flag é opcional.Ou, se você já tiver um ID de recomendação, visualize a recomendação executando o seguinte comando:
gcloud recommender recommendations describe RECOMMENDATION_ID \ --recommender=google.container.DiagnosisRecommender \ --location=LOCATION \ --project=PROJECT_ID \ --format=FORMAT
Substitua
RECOMMENDATION_ID
pelo valor salvo deassociatedRecommendations.recommendation
da saída do comando na Etapa 1.A saída fornece orientações sobre qual ação pode ser necessária para otimizar o uso do GKE do cluster.
API
Cada insight tem uma recomendação correspondente. Os insights são buscados com o recurso REST: projects.locations.insightTypes.insights, e as recomendações são buscadas com o recurso REST: projects.locations.recommenders.recommendations.
Veja a lista de insights dos clusters de uma zona específica (para clusters zonais) ou uma região específica (para clusters regionais):
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights?filter=insightSubtype%20%3D%20SUBTYPE
Substitua:
PROJECT_ID
: o ID do projeto do Google Cloud do projeto em que os clusters estão localizados.LOCATION
: a região ou zona exata do cluster. Para clusters zonais, é preciso fornecer a zona exata (por exemplo,us-central1-c
). Para clusters regionais, você precisa fornecer a região exata (por exemplo,us-central1
).SUBTYPE
: um subtipo de insight, por exemplo,DEPRECATION_K8S_1_23_CERTIFICATE
. Isso limita a saída a insights de um subtipo especificado. Essa flag é opcional.
Ou, se você já tiver um ID de insight, é possível consultar detalhes sobre o insight realizando a seguinte solicitação:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights/INSIGHT
Substitua
INSIGHT
pelo valor do ID do insight, especificado no fim do URL do camponame
.O corpo da resposta inclui detalhes sobre o comportamento que o GKE detectou com o cluster.
Confira a lista de recomendações para o cluster de uma zona específica (para clusters zonais) ou uma região específica (para clusters regionais):
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations?filter=recommenderSubtype%20%3D%20SUBTYPE
Substitua
SUBTYPE
por um subtipo de recomendador, por exemplo,DEPRECATION_K8S_1_23_CERTIFICATE
. Isso limita a saída a recomendações de um subtipo especificado. Essa flag é opcional.Ou então, se você já tiver um ID de recomendação, é possível visualizar a recomendação fazendo a seguinte solicitação:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations/RECOMMENDATION_ID
Substitua
RECOMMENDATION_ID
pelo valor salvo deassociatedRecommendations.recommendation
do corpo da resposta na Etapa 1.O corpo da resposta fornece orientações sobre qual ação pode ser necessária para otimizar o uso do GKE do cluster.
Exemplo: insight
Um insight sobre a descontinuação inclui detalhes sobre o tempo e a quantidade de uso de um recurso ou API descontinuado. As informações incluídas no insight dependem do tipo de descontinuação que ele fornece.
Confira um exemplo de insight para o subtipo de insight DEPRECATION_K8S_1_22_V1BETA1_API
:
name: projects/<PROJECT-NUMBER>/locations/us-central1/insightTypes/google.container.DiagnosisInsight/insights/<INSIGHT-ID>
observationPeriod: 2592000s
severity: HIGH
category: RELIABILITY
stateInfo:
state: ACTIVE
insightSubtype: DEPRECATION_K8S_1_22_V1BETA1_API
description: Your API clients have used deprecated APIs in the last 30 days that are removed in Kubernetes v1.22. Upgrading your cluster before migrating to the updated APIs supported by v1.22 could cause it to break. [Learn more](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-22).
targetResources:
- //container.googleapis.com/projects/<PROJECT-NUMBER>/locations/us-central1/clusters/c1
associatedRecommendations:
- recommendation: projects/<PROJECT-NUMBER>/locations/us-central1/recommenders/google.container.DiagnosisRecommender/recommendations/<RECOMMENDATION-ID>
etag: '"2147dd8e1e302ed7"'
lastRefreshTime: "2022-01-30T08:00:00Z"
content:
targetClusters:
- clusterId: <CLUSTER-ID>
clusterUri: //container.googleapis.com/projects/<PROJECT-NUMBER>/locations/us-central1/clusters/c1
apiDeprecationInsight:
- api: /apis/networking.k8s.io/v1beta1/Ingress
stopServingVersion: 1.22
deprecatedClientStats:
userAgent: kubectl
numberOfRequestsLast30Days: 288
lastRequestTime: "2022-02-30T08:00:18Z"
- api: /apis/rbac.authorization.k8s.io/v1beta1/ClusterRole
stopServingVersion: 1.22
deprecatedClientStats:
userAgent: kubectl
numberOfRequestsLast30Days: 126
lastRequestTime: "2022-02-01T06:45:25Z"
Exemplo: recomendação
Uma recomendação de suspensão de uso inclui uma descrição da descontinuação com um link para o guia de migração. Também é possível encontrar esses guias de migração na tabela de descontinuações de recursos do GKE e na tabela de descontinuações do API Kubernetes.
Este é um exemplo de recomendação para o subtipo
DEPRECATION_K8S_1_22_V1BETA1_API
:
name: projects/<PROJECT-NUMBER>/locations/us-central1/recommenders/google.container.DiagnosisRecommender/recommendations/<RECOMMENDATION-ID>
description: Update manifests and API clients to use v1 API before upgrading to Kubernetes 1.22 by following the [instructions](https://cloud.google.com/kubernetes-engine/docs/deprecations/apis-1-22).
primaryImpact:
category: RELIABILITY
reliabilityProjection:
risks:
- SERVICE_DISRUPTION
priority: P2
recommenderSubtype: DEPRECATION_K8S_1_22_V1BETA1_API
stateInfo:
state: ACTIVE
targetResources:
- //container.googleapis.com/projects/<PROJECT-NUMBER>/locations/us-central1/clusters/c1
associatedInsights:
- insight: projects/<PROJECT-NUMBER>/locations/us-central1/insightTypes/google.container.DiagnosisInsight/insights/<INSIGHT-ID>
etag: '"4dc0f7b33594072f"'
lastRefreshTime: "2022-01-30T08:00:00Z"
content:
overview:
targetClusters:
- clusterId: <CLUSTER-ID>
clusterUri: //container.googleapis.com/projects/<PROJECT-NUMBER>/locations/us-central1/clusters/c1
apiDeprecationRecommendation:
- api: /apis/networking.k8s.io/v1beta1/Ingress
apiReplacement: /apis/networking.k8s.io/v1/Ingress
stopServingVersion: 1.22
- api: /apis/rbac.authorization.k8s.io/v1beta1/ClusterRole
apiReplacement: /apis/rbac.authorization.k8s.io/v1/ClusterRole
stopServingVersion: 1.22
Exportar insights e recomendações para o BigQuery
É possível usar o BigQuery para exportar e analisar insights de descontinuação e recomendações para toda a organização. Para saber mais, consulte Exportar recomendações para o BigQuery.
Dispensar ou restaurar recomendações de suspensão de uso
Se você não quiser mais ver uma recomendação de descontinuação de um cluster no console do Google Cloud, dispense-a. É possível fazer isso, por exemplo, para dispensar recomendações que se aplicam a clusters temporários de curta duração.
Se você dispensar a recomendação, ela não aparecerá para nenhum usuário que estiver visualizando o cluster no console. Depois de dispensar a recomendação, ela não vai aparecer novamente, mesmo que um user agent chame a API ou o recurso descontinuado nesse subtipo após a dispensa.
No entanto, a recomendação permanece detectável com a Google Cloud CLI e a API Recommender.
Ao dispensar uma recomendação, ela só será ocultada para todos os usuários. Os upgrades automáticos permanecem pausados até que você migre do recurso ou API descontinuados e o GKE não detecte o uso das APIs descontinuadas por 30 dias consecutivos ou até que a versão do cluster chegue ao fim da vida útil. Para saber mais, consulte Quando o GKE retoma upgrades automáticos?.
Dispensar uma recomendação
Para dispensar a recomendação, siga as instruções em Como visualizar insights e recomendações de descontinuação no console do Google Cloud para abrir o painel da barra lateral, que tem mais detalhes. Nesse painel, clique no botão Dispensar.
Restaurar uma recomendação dispensada
É possível restaurar uma recomendação dispensada seguindo as instruções em Como restaurar uma recomendação.
A seguir
- Para saber mais sobre como as suspensões de uso funcionam com o GKE, consulte Descontinuações do GKE.
- Para saber mais sobre a API Recommender, consulte Como usar a API: Recomendações.