Détecter les API Kubernetes supprimées

Plusieurs versions de Kubernetes comportent des API obsolètes et supprimées. Si vous mettez à niveau un cluster GKE sur Bare Metal vers une nouvelle version de Kubernetes et que vos charges de travail utilisent des API qui ont été supprimées, elles peuvent être interrompues. Suivez les étapes décrites dans ce document pour déterminer si vos charges de travail utilisent l'une des API supprimées pour une version de Kubernetes donnée avant de mettre à niveau votre cluster.

Pour obtenir la liste des API supprimées par Kubernetes, consultez le guide de migration des API obsolète dans la documentation de Kubernetes.

Déterminer si la suppression de l'API vous concerne

Les étapes suivantes nécessitent que les journaux d'audit de cluster soient activés sur vos clusters GKE sur Bare Metal, et que les journaux d'audit soient transmis à l'observabilité Google Cloud, qui est le comportement par défaut.

Pour déterminer si les comptes de service Kubernetes que vous utilisez appellent des API supprimées, exécutez la requête fournie dans l'explorateur de journaux:

  1. Dans la console Google Cloud, accédez à la page Explorateur de journaux du menu Journalisation.

    Accéder à l'explorateur de journaux

  2. Dans le champ Requête, saisissez la requête suivante :

    resource.labels.cluster_name = "CLUSTER_NAME" AND
    logName = "projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" AND
    protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:kube-system:") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:cert-manager:") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-kubeadm-bootstrap-system:") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-kubeadm-bootstrap-system-webhook:") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-system:") AND
    protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:capi-system-webhook:") AND
    labels."k8s.io/removed-release"="KUBERNETES_MINOR_VERSION"
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME: nom du cluster contenant les charges de travail que vous vérifiez.

    • PROJECT_ID: ID du projet Google Cloud utilisé par votre cluster pour les journaux et les métriques (clusterOperations.projectID).

    • KUBERNETES_MINOR_VERSION: version mineure de Kubernetes, telle que 1.25, qui a supprimé les API.

    Le résultat de cette requête indique si l'un de vos comptes de service Kubernetes appelle une API qui a été supprimée pour la version mineure Kubernetes donnée.