Ver insights e recomendações para suspensão de uso


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:

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:

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

  1. Acesse a página do Google Kubernetes Engine no Console do Google Cloud:

    Acessar o Google Kubernetes Engine

  2. Verifique se há clusters específicos na coluna Notificações para encontrar insights.

  3. 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.

  1. 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 campo name.

    A saída inclui outros detalhes sobre o comportamento detectado pelo GKE no cluster.

  2. 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 de associatedRecommendations.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.

  1. 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 campo name.

    O corpo da resposta inclui detalhes sobre o comportamento que o GKE detectou com o cluster.

  2. 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 de associatedRecommendations.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