GKE 대시보드 문제 해결

리소스 메뉴에 GKE 옵션이 없으면 Cloud Operations for GKE를 사용하는 GKE 클러스터가 없을 수 있습니다. 마찬가지로 GKE 클러스터가 나열되지 않으면 기존 Logging 및 Monitoring을 사용하는 GKE 클러스터가 없을 수 있습니다.

내 대시보드에 Kubernetes 리소스가 표시되지 않는 이유는 무엇인가요?

GKE용 클라우드 작업 대시보드에 Kubernetes 리소스가 표시되지 않으면 다음을 확인합니다.

페이지 상단에서 올바른 Google Cloud 프로젝트가 선택되어 있는지 확인합니다.

그렇지 않은 경우 메뉴 바의 드롭다운 목록을 사용하여 프로젝트를 선택합니다. 보려는 데이터가 포함된 프로젝트를 선택해야 합니다.

프로젝트에 활동이 있는지 확인합니다.

클러스터를 방금 전에 만든 경우 데이터가 채워질 때까지 몇 분 정도 기다리세요. 자세한 내용은 모니터링 및 로깅 설치 지원을 참조하세요.

기간이 너무 짧지 않은지 확인합니다.

대시보드 툴바의 시간 메뉴를 사용하여 다른 기간을 선택하거나 커스텀 범위를 정의할 수 있습니다.

대시보드를 볼 수 있는 적절한 권한이 있는지 확인합니다.

서비스의 배포 세부정보 또는 Google Cloud 프로젝트의 측정항목을 볼 때 다음과 같은 권한 거부 오류 메시지가 표시되면 ID 및 액세스 관리 역할을 업데이트하여 roles/monitoring.viewer 또는 roles/viewer를 포함하도록 해야 합니다.

  • You do not have sufficient permissions to view this page
  • You don't have permissions to perform the action on the selected resources

자세한 내용을 보려면 사전 정의된 역할로 이동합니다.

클러스터 및 노드의 서비스 계정에 Monitoring 및 Logging에 데이터를 쓸 수 있는 권한이 있는지 확인합니다.

API 대시보드에서 오류가 자주 발생한다면 서비스 계정에 다음 역할이 없을 수 있습니다.

  • roles/logging.logWriter: Google Cloud Console에서 이 역할의 이름은 로그 작성자입니다. Logging 역할에 대한 자세한 내용은 Logging 액세스 제어 가이드를 참조하세요.

  • roles/monitoring.metricWriter: Google Cloud Console에서 이 역할의 이름은 Monitoring 측정항목 작성자입니다. Monitoring 역할에 대한 자세한 내용은 Monitoring 액세스 제어 가이드를 참조하세요.

  • roles/stackdriver.resourceMetadata.writer: Google Cloud Console에서 이 역할의 이름은 Stackdriver 리소스 메타데이터 작성자입니다. 이 역할은 리소스 메타데이터에 대한 쓰기 전용 액세스를 허용하며 에이전트가 메타데이터를 전송하는 데 필요한 권한을 정확히 제공합니다. Monitoring 역할에 대한 자세한 내용은 Monitoring 액세스 제어 가이드를 참조하세요.

내 로그가 표시되지 않는 이유는 무엇인가요?

에이전트에 과부하가 발생하거나 로그가 누락되나요?

모든 로그가 표시되지 않는 한 가지 이유는 노드의 로그 볼륨으로 인해 에이전트에 과부하가 발생했기 때문입니다. GKE의 기본 Logging 에이전트 구성은 노드당 100KiB/s의 속도로 조정되며, 볼륨이 이 한도를 초과하면 에이전트가 로그 삭제를 시작할 수 있습니다.

이 한도에 도달했는지 감지하려면 다음 지표를 찾습니다.

  • container_name=fluentd-gcp 필터로 kubernetes.io/container/cpu/core_usage_time 측정항목을 보고 Logging 에이전트의 CPU 사용량이 100%이거나 100%에 근접했는지 확인합니다.

  • metadata.system_labels.node_name으로 그룹화된 logging.googleapis.com/byte_count 측정항목을 보고 어떤 노드가 100KiB/s에 도달했는지 확인합니다.

이러한 조건이 발견되면 클러스터에 노드를 추가하여 노드의 로그 볼륨을 줄일 수 있습니다. 모든 로그 볼륨이 단일 Pod에서 발생하는 경우 해당 Pod에서 볼륨을 줄여야 합니다.

Logging 에이전트 튜닝 매개변수를 변경하려면 Fluentd로 GKE용 Cloud Logging 로그 맞춤설정 가이드에서 커스텀 Logging 에이전트 구성 배포 방법을 확인합니다.

내 이슈가 GKE 리소스와 일치하지 않는 이유는 무엇인가요?

고유 GKE 리소스 간에 측정항목을 집계하는 알림 정책 조건이 있으면 이슈를 특정 항목과 연결하기 위해 더 많은 GKE 계층 라벨을 포함하도록 정책 조건을 수정해야 할 수 있습니다.

예를 들어 프로덕션 및 스테이징을 위해 GKE 클러스터가 2개 있고, 각 클러스터에 고유 서비스 lilbuddy-2 복사본이 포함되어 있을 수 있습니다. 알림 정책 조건이 두 클러스터 모두의 컨테이너에서 측정항목을 수집할 때 GKE Monitoring 대시보드는 프로덕션 서비스 또는 스테이징 서비스와 고유하게 이 이슈를 연결할 수 없습니다.

이 문제를 해결하기 위해서는 namespace, cluster, location을 정책의 그룹화 기준 필드에 추가하여 특정 서비스를 가리키도록 알림 정책 대상을 지정합니다. 알림 이벤트 카드에서 알림 정책 업데이트 링크를 클릭하여 관련 알림 정책에 대해 알림 정책 수정 페이지를 엽니다. 여기에서 대시보드가 관련 리소스를 찾을 수 있도록 추가 정보로 알림 정책을 업데이트할 수 있습니다.

알림 정책을 업데이트한 후에는 GKE Monitoring 대시보드가 모든 이후 이슈를 특정 클러스터의 고유 서비스와 연결하여, 문제 진단을 위한 추가 정보를 제공할 수 있습니다.

사용 사례에 따라 그룹화 기준 필드에 추가하는 것 외에도 이러한 라벨 중 일부에 따라 필터링해야 할 수 있습니다. 예를 들어 프로덕션 클러스터에 대해서만 알림이 필요하면 cluster_name으로 필터링하면 됩니다.