Stackdriver Kubernetes Engine Monitoring으로 이전

Stackdriver 옵션

현재 GKE에서 선택할 수 있는 Stackdriver 지원 옵션은 2개가 있습니다. 이러한 옵션은 새 클러스터 및 기존 클러스터의 업데이트에 사용할 수 있는 모든 GKE 버전에서 제공합니다.

Stackdriver 지원 설치 페이지에서는 GKE 클러스터를 Stackdriver Kubernetes Engine Monitoring으로 업데이트하는 방법을 설명합니다. 이 페이지에서는 업데이트 후 Stackdriver에서 확인할 수 있는 차이점, Stackdriver Kubernetes Engine Monitoring과 Stackdriver Monitoring 및 Stackdriver Logging을 함께 사용할 때 변경해야 할 사항에 대해 설명합니다.

언제 이전해야 하나요?

기존 Stackdriver 구성은 Stackdriver Kubernetes Engine Monitoring과 함께 사용하기 시작할 때 이전해야 합니다. GKE의 향후 출시 버전에서는 레거시 Stackdriver에 대한 지원이 중단될 예정이며, Stackdriver Kubernetes Engine Monitoring을 사용해야 합니다.

다음은 향후 예정된 GKE 출시 버전과 해당 Stackdriver 지원 옵션을 요약한 표입니다.

GKE 버전 지원되지 않음 선택 기존 Stackdriver Stackdriver Kubernetes Engine Monitoring
1.10, 1.11, 1.12.5 선택 기본값(GA) 선택(베타)
1.12.7 선택 기본값(GA) 선택(GA)
1.13 선택 기본값(GA) 선택(GA)
1.14 선택 선택(GA) 기본값(GA)

어떤 점이 달라지나요?

Stackdriver Kubernetes Engine Monitoring은 다른 데이터 모델을 사용하여 측정항목, 로그, 메타데이터를 구성합니다. Stackdriver Kubernetes Engine Monitoring을 사용하는 클러스터의 몇 가지 구체적인 변경사항은 다음과 같습니다.

  • Stackdriver Monitoring 대시보드가 리소스 > Kubernetes Engine 신규라는 새로운 메뉴에 있습니다. Stackdriver Kubernetes Engine Monitoring을 사용하는 클러스터가 없는 경우에는 이 대시보드가 나타나지 않습니다.

  • 모니터링 리소스 유형 이름이 다릅니다. 예를 들어 Kubernetes 노드는 gce_instance(Compute Engine VM 인스턴스)가 아닌 모니터링 리소스 유형 k8s_node(Kubernetes 노드) 아래에 나열됩니다.

  • Kubernetes 측정항목 이름이 다릅니다. 이제 측정항목 유형 이름이 container.googleapis.com/이 아닌 프리픽스 kubernetes.io/(Stackdriver Kubernetes 측정항목)로 시작됩니다.

다음은 이전 변경사항을 요약한 표입니다.

변경 (이전) 레거시 Stackdriver (신규) Stackdriver Kubernetes Engine Monitoring
대시보드 메뉴 리소스 > Kubernetes Engine 리소스 > Kubernetes Engine 신규
측정항목 프리픽스 container.googleapis.com kubernetes.io
리소스 유형 gke_container(측정항목)
container(로그)
gce_instance
(없음)
gke_cluster
k8s_container
k8s_container
k8s_node
k8s_pod
k8s_cluster

어떻게 해야 하나요?

이 섹션에는 Stackdriver Kubernetes Engine Monitoring의 데이터 모델 변경사항과 기존 Stackdriver 구성에 미치는 영향에 대한 자세한 정보가 포함되어 있습니다.

이전 상태 대시보드 사용

Stackdriver Kubernetes Engine Monitoring으로 업그레이드하는 과정에서 이전해야 하는 많은 Stackdriver 구성을 식별하기 위해 Stackdriver는 이전 상태 대시보드를 제공합니다.

대시보드를 보려면 Stackdriver Kubernetes Engine Monitoring으로 업데이트할 Kubernetes 클러스터가 포함된 작업공간을 선택합니다. 프로젝트 선택 드롭다운 메뉴에서 작업공간 설정 > Kubernetes 이전 상태를 선택합니다.

Kubernetes 이전 상태 대시보드로 이동

다음 샘플 대시보드는 수행할 작업이 없음을 보여줍니다.

이전 대시보드

리소스 유형 변경사항

Stackdriver Kubernetes Engine Monitoring에는 새로운 리소스 유형 이름, 새로운 리소스 유형 표시 이름, 특정 리소스를 식별하는 라벨의 새 이름이 있습니다. 다음 표에 이러한 변경사항이 나와 있습니다.

리소스 유형 변경사항
(이전) 레거시 Stackdriver 리소스 유형 (신규) Stackdriver Kubernetes Engine Monitoring 리소스 유형
표 각주:
1 모니터링(전용)에 사용되는 새 리소스 유형에서 instance_idmetadata.system_labelsnode_name이 됩니다.
2 zone은 이 컨테이너 또는 인스턴스의 위치를 말합니다. location은 클러스터 마스터 노드의 위치를 말합니다.
3 metadata.system_labels.node_name은 로깅에 사용되는 k8s_container 리소스 유형에는 사용할 수 없습니다. 노드 이름으로 로그를 검색할 수는 없습니다.
4 gce_instance 리소스 유형은 Kubernetes 노드와 Kubernetes 이외 VM 인스턴스를 나타낼 수 있습니다. Stackdriver Kubernetes Engine Monitoring으로 업그레이드하면 노드 관련 용도가 kubelet, docker, kube-proxy, startupscript, node-problem-detector와 같은 이름의 노드 수준 로그를 포함한 새로운 리소스 유형 k8s_node를 사용하도록 변경됩니다.
5 k8s_podk8s_cluster 노드는 레거시 Stackdriver 지원에 없는 로그를 포함할 수 있습니다.
모니터링만:
gke_container (GKE 컨테이너)

라벨:
  cluster_name
  container_name
  instance_id1
  namespace_id
  pod_id
  project_id
  zone2

로깅만:
container (GKE 컨테이너)

라벨:
  cluster_name
  container_name
  instance_id1
  namespace_id
  pod_id
  project_id
  zone2

모니터링 및 로깅:
k8s_container (Kubernetes 컨테이너)

라벨:
  cluster_name
  container_name
  metadata.system_labels.node_name3
  namespace_name
  pod_name
  project_id
  location2

로깅만:
gce_instance (Compute Engine VM 인스턴스)4

라벨:
  cluster_name
  instance_id
  project_id
  zone2
모니터링 및 로깅
k8s_node4(Kubernetes 노드)

라벨:
  cluster_name
  node_name
  project_id
  location2
 
(없음)
모니터링 및 로깅:
k8s_pod5(Kubernetes Pod)

라벨:
  cluster_name
  namespace_name
  pod_name
  project_id
  location2

로깅만
gke_cluster(GKE_cluster)

라벨:
  cluster_name
  project_id
  location

모니터링 및 로깅:
k8s_cluster5(Kubernetes 클러스터)

라벨:
  cluster_name
  project_id
  location

측정항목 이름 변경사항

다음 표는 다양한 메트릭 이름의 일부 샘플을 보여줍니다. container.googleapis.com/으로 시작하는 이름의 측정항목이 사용될 때마다 kubernetes.io/로 시작하는 이름의 새 측정항목으로 변경해야 합니다. 새 측정항목 이름은 새 프리픽스 외에도 몇 가지 부분이 다릅니다. kubernetes.io (Stackdriver Kubernetes 측정항목)에서 새 측정항목을 찾아보세요.

측정항목 이름 변경사항
(이전) 레거시 Stackdriver 측정항목 (신규) Stackdriver Kubernetes Engine Monitoring 측정항목
레거시 GKE 측정항목
container.googleapis.com/

예시:
  .../container/cpu/utilization
  .../container/uptime
  .../container/memory/bytes_total
Stackdriver Kubernetes 측정항목
kubernetes.io/

예시:
  .../container/cpu/request_utilization
  .../container/uptime
  .../node/memory/total_bytes
  .../node/cpu/total_cores

리소스 그룹 변경사항

고유한 리소스 그룹을 정의하고, 앞서 리소스 유형 변경사항 표에 나왔던 레거시 Stackdriver 리소스 유형 또는 측정항목 이름 변경사항 표에 나왔던 레거시 Stackdriver 측정항목을 사용할 경우 이러한 유형 및 측정항목을 해당하는 Stackdriver Kubernetes Engine Monitoring 리소스 유형 및 측정항목으로 변경하세요. 리소스 그룹에 커스텀 차트가 포함되어 있다면 이를 변경해야 할 수 있습니다.

: 업데이트된 그룹에 업그레이드 전과 동일한 리소스 수가 포함되어 있는지 확인하세요. 리소스 수가 너무 적다면 일부 변경사항을 놓친 것일 수 있습니다.

커스텀 차트 및 대시보드 변경사항

고유한 커스텀 차트 및 대시보드를 정의하고, 앞서 리소스 유형 변경사항 표에 나왔던 레거시 Stackdriver 리소스 유형 또는 측정항목 이름 변경사항 표에 나왔던 레거시 Stackdriver 측정항목을 사용할 경우 이러한 유형 및 측정항목을 해당하는 Stackdriver Kubernetes Engine Monitoring 리소스 유형 및 측정항목으로 변경하세요.

: 업데이트된 차트가 업데이트 이후의 타임스탬프가 적용된 데이터를 수신하고 있는지 확인하세요. 데이터가 누락되었다면 일부 측정항목을 올바르게 변경하지 못한 것일 수 있습니다.

커스텀 차트 및 대시보드의 경우 Kubernetes 이전 상태 대시보드를 보면 도움이 될 수 있습니다.

  1. Stackdriver Monitoring 페이지 상단에서 Stackdriver Kubernetes Engine Monitoring으로 업데이트할 Kubernetes 클러스터가 포함된 작업공간을 선택합니다.

  2. 작업공간 설정 > Kubernetes 이전 상태를 선택합니다.

    Kubernetes 이전 상태 대시보드로 이동

알림 및 업타임 정책 변경사항

알림 정책 또는 업타임 체크를 정의하고, 앞서 리소스 유형 변경사항 표에 나왔던 레거시 Stackdriver 리소스 유형 또는 측정항목 이름 변경사항 표에 나왔던 레거시 Stackdriver 측정항목을 사용할 경우 이러한 유형 및 측정항목을 해당하는 Stackdriver Kubernetes Engine Monitoring 리소스 유형 및 측정항목으로 변경하세요.

알림 정책 및 업타임 체크 업그레이드는 실행 및 확인이 가장 어려운 변경 작업이 될 수 있습니다. 클러스터 업그레이드 전후로 정책 구성을 변경할 경우 이전 정책은 클러스터 업데이트 후 실패하고, 새 정책은 클러스터 업데이트 전에 실패합니다.

기존의 정책을 변경하지 말고 그대로 두고 업데이트된 변경사항이 적용된 새 정책을 만드는 것이 좋습니다. 이렇게 하면 업데이트하는 동안 서로 다른 시기에 실패할 것으로 예상되는 정책과 그렇지 않은 정책을 더욱 쉽게 추적할 수 있습니다.

다음은 그 외 몇 가지 팁입니다.

  • 정책을 살펴보고, 업데이트된 클러스터가 '안정된 상태'로 작동하기에 충분한 데이터를 축적하기 전에 실행되어야 하는 기간을 추정합니다.

  • 업데이트하기 전에 정책 또는 개별 측정항목이 어떻게 실행되는지 알면 해당 동작을 업데이트 후 동작과 비교할 수 있습니다.

쿼리 로깅

쿼리를 사용하여 Stackdriver Logging의 로그를 찾아 필터링하고, 앞서 리소스 유형 변경사항 표에 나왔던 레거시 Stackdriver 리소스 유형을 사용할 경우 이러한 유형을 해당하는 Stackdriver Kubernetes Engine Monitoring 유형으로 변경하세요.

로그 기반 측정항목

고유한 로그 기반 측정항목을 정의하고, 앞서 측정항목 이름 변경사항 또는 리소스 유형 변경사항 표에 나왔던 레거시 Stackdriver 측정항목 또는 리소스 유형을 사용할 경우 이러한 측정항목 및 리소스 유형을 해당하는 Stackdriver Kubernetes Engine Monitoring 측정항목 및 리소스 유형으로 변경하세요.

: Stackdriver Kubernetes Engine Monitoring으로 업데이트한 후 로그 기반 측정항목의 샘플이 보이지 않아도 레거시 Stackdriver 측정항목 또는 리소스 유형이 계속 사용 중일 수 있습니다.

로그 내보내기 및 제외

사용자가 로그를 내보내거나 제외하고, 내보내기 또는 제외 필터가 앞서 리소스 유형 변경사항 표에 나왔던 레거시 Stackdriver 리소스 유형을 사용할 경우 내보내기 및 제외 필터를 해당하는 Stackdriver Kubernetes Engine Monitoring 리소스 유형으로 변경하세요.

: Stackdriver Kubernetes Engine Monitoring으로 업데이트하기 전에 GCP 프로젝트에서 내보내거나 제외할 대략적인 로그 항목 수를 적어 두세요. 그러면 적절한 항목 수가 수신되고 있는지 확인할 수 있습니다.

로그 항목 콘텐츠 변경사항

Stackdriver Kubernetes Engine Monitoring으로 업데이트하면 로그 항목의 특정 정보가 다른 이름의 필드로 이동되었음을 알 수 있습니다. 이 정보는 로그 기반 측정항목, 로그 싱크, 로그 제외에 사용되는 로그 쿼리에 나타날 수 있습니다.

로그 항목 변경사항이라는 다음 표에는 새로운 필드와 라벨이 나와 있습니다. 간단히 요약하면 다음과 같습니다.

  • logName 필드는 변경될 수 있습니다. Stackdriver Kubernetes Engine Monitoring 로그 항목은 로그 이름에 stdout 또는 stderr을 사용하는 반면, 레거시 Stackdriver는 컨테이너 이름을 포함한 더 광범위한 이름을 사용했습니다. 지금도 컨테이너 이름을 리소스 라벨로 사용할 수는 있습니다.
  • 로그 항목의 labels 필드를 확인하세요. 이전에 metadata 로그 항목 필드에 저장되던 정보가 이 필드에 포함될 수 있습니다.
  • 로그 항목의 resource.labels 필드를 확인하세요. 새 리소스 유형에는 추가 라벨 값이 있습니다.
로그 항목 변경사항
(이전) 레거시 Stackdriver 로그 항목 (신규) Stackdriver Kubernetes Engine Monitoring 로그 항목
표 각주:
1 리소스 라벨은 특정 클러스터 및 노드와 같은 측정항목을 생성하는 특정 리소스를 식별합니다.
2 labels 필드는 Stackdriver Kubernetes Engine Monitoring에 포함된 새로운 로그 항목에 표시되며, 일부 레거시 Stackdriver 로그 항목에도 간혹 표시됩니다. Stackdriver Kubernetes Engine Monitoring에서는 이전에 metadata 로그 항목 필드에 보관하던 일부 정보를 보관하는 데 사용됩니다.
로그 항목 리소스
resource.labels(리소스 라벨1)
로그 항목 리소스
resource.labels (리소스 라벨1)
로그 항목 메타데이터
labels(로그 항목 라벨2)

labels(예시)
  compute.googleapis.com/resource_name:
    "fluentd-gcp-v3.2.0-d4d9p"

  container.googleapis.com/namespace_name:
    "kube-system"

  container.googleapis.com/pod_name:
    "fluentd-gcp-scaler-8b674f786-d4pq2"

  container.googleapis.com/stream:
    "stdout"
로그 항목 메타데이터
labels

로그 위치 변경사항

Stackdriver Logging에서 로그는 로그를 생성한 리소스 유형과 함께 저장됩니다. 이러한 유형은 Stackdriver Kubernetes Engine Monitoring에서 변경되었으므로 레거시 Stackdriver 유형(예: GKE Container)이 아닌 새로운 리소스 유형(예: Kubernetes Container)에서 로그를 찾아보세요.

다음 단계

  • 새 Stackdriver Kubernetes Engine Monitoring 대시보드에 대해 알아보려면 시스템 관찰을 참조하세요.
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Stackdriver Monitoring
도움이 필요하시나요? 지원 페이지를 방문하세요.