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 :
- La mise à niveau automatique vers la prochaine version mineure est suspendue. Pour en savoir plus, consultez la section Que se passe-t-il lorsque GKE met en veille les mises à niveau automatiques ?.
- Un insight et une recommandation sont générés pour vous permettre d'évaluer et d'atténuer l'exposition de votre cluster à cet abandon.
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 section 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 :
Affichez les insights et les recommandations avec l'un des rôles suivants :
Affichez et mettez à jour l'état des insights et des recommandations (par exemple, ignorer une recommandation) :
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
Accédez à la page Google Kubernetes Engine dans la console Google Cloud :
Consultez la colonne Notifications pour des clusters spécifiques afin d'obtenir des insights.
Cliquez sur l'insight pour afficher plus d'informations. Dans le panneau de la barre latérale, vous pouvez afficher les détails de cet insight, y compris les recommandations associées.
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
.
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 exempleDEPRECATION_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 champname
de l'insight.Le résultat inclut des détails supplémentaires sur le comportement détecté par GKE avec votre cluster.
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 deassociatedRecommendations.recommendation
dans le résultat de la commande de l'étape 1.Le résultat fournit des conseils sur l'action à 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.
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 exempleDEPRECATION_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 champname
de l'insight.Le corps de la réponse inclut des détails sur le comportement détecté par GKE avec votre cluster.
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 deassociatedRecommendations.recommendation
obtenue dans le corps de la réponse de l'étape 1.Le corps de la réponse fournit des conseils sur l'action à 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 des insights et des 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. Cela peut vous servir, par exemple, à ignorer les recommandations qui s'appliquent aux clusters temporaires de courte durée.
Si vous ignorez la recommandation, elle ne s'affiche pour aucun utilisateur qui consulte 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 période de compatibilité. 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
- Pour en savoir plus sur le fonctionnement des abandons avec GKE, consultez la page Abandons GKE.
- Pour en savoir plus sur l'API Recommender, consultez la section Utiliser l'API - Recommandations.