Afficher les insights et recommandations d'abandon


Cette page vous explique comment afficher des insights et des recommandations concernant les abandons de Kubernetes pour vos clusters Google Kubernetes Engine. Pour en savoir plus sur la gestion des abandons Kubernetes avec GKE, consultez la page Abandons de GKE.

Que sont les insights et les recommandations d'abandon ?

Lorsque GKE détecte qu'un cluster utilise une fonctionnalité ou une API Kubernetes obsolète qui sera supprimée dans une version mineure à venir, voici ce qui se produit :

Les insights et recommandations d'abandon sont disponibles depuis l'outil de recommandation, un service qui fournit des insights et des recommandations pour l'utilisation des ressources sur Google Cloud. Pour en savoir plus sur le fonctionnement de l'outil de recommandation avec GKE, consultez la page Optimiser votre utilisation de GKE avec des insights et des recommandations.

Pour ce qui est des abandons dans l'outil de recommandation :

  • Un insight explique que votre cluster utilise une fonctionnalité ou une API obsolète et qui sera supprimée dans une prochaine version mineure.
  • Une recommandation fournit des conseils sur la manière de limiter l'exposition de votre cluster à l'abandon.

Par exemple, une statistique peut indiquer que votre cluster utilise une API en version bêta qui est obsolète et sera supprimée dans la prochaine version mineure. La recommandation explique que vous devez migrer vos charges de travail des API Bêta vers les API v1. Chaque recommandation inclut une référence à un guide de migration pour la fonctionnalité ou l'API obsolète. Ce guide de migration est également disponible dans le tableau correspondant aux abandons Kubernetes.

Lorsque GKE génère une paire insight/recommandation, il couvre l'utilisation des API ou fonctionnalités Kubernetes obsolètes dans un sous-type d'insight particulier pour un cluster de votre projet. Par exemple, si des user-agents appellent l'une des API traitées par le sous-type DEPRECATION_K8S_1_22_V1BETA1_API, un insight et une recommandation s'affichent pour vous recommander de migrer ce cluster depuis ces API. Si un autre cluster utilise également ces API, GKE génère un autre insight et une autre recommandation.

Utilisation d'API et de fonctionnalités Kubernetes obsolètes détectées par GKE

Obsolescence Suppression dans la version GKE Sous-type d'insight
Certificats TLS signés avec l'algorithme SHA-1 1.29 DEPRECATION_K8S_SHA_1_CERTIFICATE
API obsolètes de Kubernetes 1.29 1.29 DEPRECATION_K8S_1_29_API
API obsolètes de Kubernetes 1.27 1.27 DEPRECATION_K8S_1_27_API
API obsolètes de Kubernetes 1.26 1.26 DEPRECATION_K8S_1_26_API
API obsolètes de Kubernetes 1.25 1.25 DEPRECATION_K8S_1_25_API
PodSecurityPolicy 1.25 DEPRECATION_K8S_1_25_PODSECURITYPOLICY
Images de nœud basées sur Docker 1.24 DEPRECATION_K8S_1_24_DOCKERSHIM
Champ Nom courant X.509 dans les certificats webhook 1.23 DEPRECATION_K8S_1_23_CERTIFICATE
API obsolètes de Kubernetes 1.22,
API bêta d'entrée Kubernetes supprimées dans GKE 1.23
1.22, 1.23 DEPRECATION_K8S_1_22_V1BETA1_API

N'oubliez pas que pour les abandons à venir, vous devez évaluer indépendamment l'exposition de votre environnement de cluster et limiter les problèmes éventuels.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.

Rôles requis

Vérifiez que vous disposez des autorisations nécessaires pour obtenir les insights et recommandations de Kubernetes, avec les rôles de base ou les rôles prédéfinis suivants :

Afficher les insights et les recommandations

Vous pouvez afficher les insights et les recommandations en utilisant Google Cloud CLI, la console Google Cloud ou l'API Recommender.

Console

  1. Accédez à la page Google Kubernetes Engine dans la console Google Cloud :

    Accéder à Google Kubernetes Engine

  2. Recherchez des insights dans la colonne Notifications pour des clusters spécifiques.

  3. Cliquez sur l'insight pour afficher plus d'informations. Dans le panneau de la barre latérale, vous pouvez afficher des détails sur cet insight, y compris toute recommandation associée.

gcloud

Un insight comporte généralement une recommandation correspondante. Les insights sont récupérés avec gcloud recommender insights et les recommandations avec gcloud recommender recommendations.

  1. Affichez la liste des insights pour les clusters d'une zone spécifique (pour les clusters zonaux) ou d'une région spécifique (pour les clusters régionaux) :

    gcloud recommender insights list \
        --insight-type=google.container.DiagnosisInsight \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT \
        --filter="insightSubtype:SUBTYPE"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet Google Cloud dans lequel se trouvent les clusters.
    • LOCATION : région ou zone exacte du cluster. Pour les clusters zonaux, vous devez fournir la zone exacte (par exemple, us-central1-c). Pour les clusters régionaux, vous devez indiquer la région exacte (par exemple, us-central1).
    • FORMAT : définissez le format de sortie sur YAML. Cette option est facultative.
    • SUBTYPE : sous-type d'insight, par exemple DEPRECATION_K8S_1_23_CERTIFICATE. Cela limite la sortie aux insights d'un sous-type spécifié. Cette option est facultative.

    Si vous disposez déjà d'un ID d'insight, vous pouvez également afficher les détails de l'insight en exécutant la commande suivante :

    gcloud recommender insights describe INSIGHT \
        --insight-type=google.container.DiagnosisInsight \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT
    

    Remplacez INSIGHT par la valeur de l'ID d'insight, spécifiée à la fin de l'URL du champ name de l'insight.

    Le résultat inclut des détails supplémentaires sur le comportement détecté par GKE avec votre cluster.

  2. Affichez la liste des recommandations pour les clusters d'une zone spécifique (pour les clusters zonaux) ou d'une région spécifique (pour les clusters régionaux) :

    gcloud recommender recommendations list \
        --recommender=google.container.DiagnosisRecommender \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT \
        --filter="recommenderSubtype:SUBTYPE"
    

    Remplacez SUBTYPE par un sous-type de l'outil de recommandation (par exemple, DEPRECATION_K8S_1_23_CERTIFICATE). Cela limite la sortie aux recommandations d'un sous-type spécifié. Cette option est facultative.

    Si vous disposez déjà d'un ID de recommandation, vous pouvez également l'afficher en exécutant la commande suivante :

    gcloud recommender recommendations describe RECOMMENDATION_ID \
        --recommender=google.container.DiagnosisRecommender \
        --location=LOCATION \
        --project=PROJECT_ID \
        --format=FORMAT
    

    Remplacez RECOMMENDATION_ID par la valeur enregistrée de associatedRecommendations.recommendation dans le résultat de la commande de l'étape 1.

    Le résultat fournit des conseils sur les actions que vous devrez peut-être effectuer pour optimiser l'utilisation de GKE par votre cluster.

API

Chaque insight comporte une recommandation correspondante. Les insights sont extraits avec la Ressource REST : projects.locations.insightTypes.insights et les recommandations sont extraites avec la Ressource REST : projects.locations.recommenders.recommendations.

  1. Affichez la liste des insights pour les clusters d'une zone spécifique (pour les clusters zonaux) ou d'une région spécifique (pour les clusters régionaux) :

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights?filter=insightSubtype%20%3D%20SUBTYPE
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet Google Cloud dans lequel se trouvent les clusters.
    • LOCATION : région ou zone exacte du cluster. Pour les clusters zonaux, vous devez fournir la zone exacte (par exemple, us-central1-c). Pour les clusters régionaux, vous devez indiquer la région exacte (par exemple, us-central1).
    • SUBTYPE : sous-type d'insight, par exemple DEPRECATION_K8S_1_23_CERTIFICATE. Cela limite la sortie aux insights d'un sous-type spécifié. Cette option est facultative.

    Si vous disposez déjà d'un ID d'insight, vous pouvez également afficher les détails de l'insight en envoyant la requête suivante :

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.container.DiagnosisInsight/insights/INSIGHT
    

    Remplacez INSIGHT par la valeur de l'ID d'insight, spécifiée à la fin de l'URL du champ name de l'insight.

    Le corps de la réponse inclut des détails sur le comportement détecté par GKE avec votre cluster.

  2. Affichez la liste des recommandations pour les clusters d'une zone spécifique (pour les clusters zonaux) ou d'une région spécifique (pour les clusters régionaux) :

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations?filter=recommenderSubtype%20%3D%20SUBTYPE
    

    Remplacez SUBTYPE par un sous-type de l'outil de recommandation (par exemple, DEPRECATION_K8S_1_23_CERTIFICATE). Cela limite la sortie aux recommandations d'un sous-type spécifié. Cette option est facultative.

    Si vous disposez déjà d'un ID de recommandation, vous pouvez également afficher la recommandation en effectuant la requête suivante :

    GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.container.DiagnosisRecommender/recommendations/RECOMMENDATION_ID
    

    Remplacez RECOMMENDATION_ID par la valeur enregistrée de associatedRecommendations.recommendation obtenue dans le corps de la réponse de l'étape 1.

    Le corps de la réponse fournit des conseils sur les actions que vous devrez peut-être effectuer pour optimiser l'utilisation de GKE par votre cluster.

Exemple : Insight

Un insight d'abandon inclut des détails sur les horaires et la quantité d'utilisation d'une fonctionnalité ou d'une API obsolète. Les informations incluses dans l'insight dépendent du type d'abandon pour lequel l'insight fournit des informations.

Voici un exemple d'insight pour le sous-type d'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"

Exemple : Recommandation

Une recommandation d'abandon inclut une description de l'abandon et un lien vers le guide de migration pour cet abandon. Vous pouvez également trouver ces guides de migration dans le tableau des abandons de fonctionnalité GKE et le tableau des abandons de l'API Kubernetes.

Voici un exemple de recommandation pour le sous-type de recommandation 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

Exporter des insights et des recommandations vers BigQuery

Vous pouvez utiliser BigQuery pour exporter et analyser les insights et les recommandations pour l'ensemble de votre organisation. Pour en savoir plus, consultez la page Exporter des recommandations vers BigQuery.

Ignorer ou restaurer les recommandations d'abandon

Si vous ne souhaitez plus voir une recommandation d'abandon pour un cluster dans la console Google Cloud, ignorez-la. Par exemple, vous pouvez ignorer les recommandations qui s'appliquent aux clusters temporaires et de courte durée.

Si vous ignorez la recommandation, elle ne s'affiche pour aucun utilisateur consultant le cluster dans la console. Une fois la recommandation ignorée, elle ne s'affiche plus, même si un user-agent appelle l'API ou la fonctionnalité obsolète dans ce sous-type après que vous l'avez ignorée.

Toutefois, la recommandation reste visible avec Google Cloud CLI et l'API Recommender.

Lorsque vous ignorez une recommandation, vous ne faites que la masquer pour tous les utilisateurs. Les mises à niveau automatiques restent en pause jusqu'à ce que vous migriez depuis la fonctionnalité ou l'API obsolète et que GKE ne détecte pas l'utilisation d'API obsolètes pendant 30 jours consécutifs ou jusqu'à ce que la version du cluster arrive en fin de vie. Pour en savoir plus, consultez la section Quand GKE reprend-il les mises à niveau automatiques ?

Ignorer une recommandation

Pour ignorer la recommandation, suivez les instructions de la page Afficher les insights et les recommandations dans la console Google Cloud pour ouvrir le panneau de la barre latérale, qui contient plus de détails. Dans ce panneau, cliquez sur le bouton Ignorer.

Restaurer une recommandation ignorée

Vous pouvez restaurer une recommandation ignorée en suivant les instructions de la section Restaurer une recommandation.

Étapes suivantes