삭제된 Kubernetes API 감지

지원 중단 및 삭제된 API가 포함된 여러 Kubernetes 출시 버전이 있습니다. 베어메탈용 GKE 클러스터를 새 Kubernetes 버전으로 업그레이드했는데 워크로드가 삭제된 API를 사용하는 경우 워크로드가 중단될 수 있습니다. 이 문서의 단계에 따라 클러스터를 업그레이드하기 전에 워크로드가 지정된 Kubernetes 버전의 삭제된 API를 사용하는지 확인합니다.

Kubernetes 출시별로 삭제된 API 목록은 Kubernetes 문서에서 지원 중단된 API 마이그레이션 가이드를 참조하세요.

API 삭제로 인한 영향 여부 확인

다음 단계를 수행하려면 베어메탈용 GKE 클러스터에 클러스터 감사 로깅이 사용 설정되고 감사 로그가 Google Cloud Observability로 스트리밍되어야 하며 이는 기본 동작입니다.

사용하는 Kubernetes 서비스 계정이 삭제된 API를 호출하는지 확인하려면 로그 탐색기에서 제공된 쿼리를 실행합니다.

  1. Google Cloud 콘솔의 Logging 메뉴에서 로그 탐색기 페이지로 이동합니다.

    로그 탐색기로 이동

  2. 쿼리 필드에 다음 쿼리를 입력합니다.

    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"
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 확인하는 워크로드가 포함된 클러스터의 이름

    • PROJECT_ID: 클러스터가 로그 및 측정항목에 사용하는 Google Cloud 프로젝트의 ID(clusterOperations.projectID)

    • KUBERNETES_MINOR_VERSION: API를 삭제한 부 Kubernetes 버전(예: 1.25)

    이 쿼리의 출력에 Kubernetes 서비스 계정이 지정된 Kubernetes 부 출시 버전에서 삭제된 API를 호출하는지 여부가 표시됩니다.