Detectar APIs de Kubernetes eliminadas

Hay varias versiones de Kubernetes en las que se han retirado APIs obsoletas. Si actualizas un clúster de Google Distributed Cloud a una nueva versión de Kubernetes y tus cargas de trabajo usan alguna API que se haya eliminado, estas pueden verse afectadas. Sigue los pasos que se indican en este documento para determinar si tus cargas de trabajo usan alguna de las APIs retiradas para una versión de Kubernetes determinada antes de actualizar tu clúster.

Para ver una lista de las APIs retiradas por versión de Kubernetes, consulta la guía de migración de APIs obsoletas en la documentación de Kubernetes.

Determinar si la eliminación de la API te afecta

Para llevar a cabo los pasos siguientes, es necesario que tus clústeres de Google Distributed Cloud tengan habilitado el registro de auditoría y que los registros de auditoría se envíen a Google Cloud Observability, que es el comportamiento predeterminado.

Para determinar si las cuentas de servicio de Kubernetes que usas hacen llamadas a alguna API eliminada, ejecuta la consulta proporcionada en Explorador de registros:

  1. En la Google Cloud consola, ve a la página Explorador de registros del menú Logging.

    Ir a Explorador de registros

  2. En el campo Consulta, introduce la siguiente consulta:

    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"
    

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del clúster que contiene las cargas de trabajo que estás comprobando.

    • PROJECT_ID: el ID del Google Cloud proyecto que usa tu clúster para los registros y las métricas (clusterOperations.projectID).

    • KUBERNETES_MINOR_VERSION: la versión secundaria de Kubernetes, como 1.25, que ha eliminado APIs.

    El resultado de esta consulta muestra si alguna de tus cuentas de servicio de Kubernetes hace llamadas a APIs que se han eliminado en la versión secundaria de Kubernetes indicada.