Kubernetes Engine Operations로 마이그레이션

Google Kubernetes Engine(GKE)의 모니터링 및 로깅 지원에는 두 가지 옵션이 있습니다. 새 클러스터 및 기존 클러스터 업데이트에 사용할 수 있는 모든 GKE 버전에서 제공됩니다.

이 페이지에서는 이러한 두 옵션의 차이점과 기존 Logging 및 Monitoring에서 Kubernetes Engine Operations로 이전하기 위해 변경해야 하는 사항을 설명합니다.

언제 이전해야 하나요?

기존 Cloud Monitoring 및 Cloud Logging 구성은 기존 Logging 및 Monitoring에서 Kubernetes Engine Operations로 언제든지 이전 할 수 있습니다. 하지만 향후 GKE 출시 버전에서는 기존 Logging 및 Monitoring 지원을 중단할 수 있습니다. 기존 Logging 및 Monitoring에 대한 지원이 삭제된 경우, Cloud Monitoring 및 Cloud Logging 지원을 계속 사용하려면 삭제되기 전에 Kubernetes Engine Operations로 이전해야 합니다.

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

GKE 버전 기존 Logging 및 Monitoring Kubernetes Engine Operations
1.10 – 1.12.5 기본 선택(베타)
1.12.7 기본 선택
1.13 기본 선택
1.14 선택 기본
1.15 사용 불가 기본

어떤 점이 달라지나요?

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

  • 탐색 변경: Cloud Monitoring 대시보드의 이름은 Kubernetes Engine 신규입니다. Kubernetes Engine Operations를 사용하는 클러스터가 없는 경우 이 대시보드가 나타나지 않습니다.

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

  • Kubernetes 측정항목 이름 변경: 이제 Kubernetes Engine Operations에서 측정항목 유형 이름이 container.googleapis.com/ 대신 프리픽스 kubernetes.io/ 로 시작합니다.

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

변경 (이전) 기존 Logging 및 Monitoring (신규) Kubernetes Engine Operations
대시보드 메뉴 대시보드 / 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

어떻게 해야 하나요?

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

이전 상태 대시보드 사용

Kubernetes Engine Operations로 마이그레이션할 때 업데이트해야 하는 Cloud Monitoring 및 Cloud Logging 구성을 식별하려면 다음을 수행합니다.

  1. Cloud Console에서 Monitoring으로 이동합니다.

    Monitoring으로 이동

  2. 마이그레이션 상태에 액세스하려면 Monitoring 탐색창에서 설정을 클릭한 다음 Kubernetes 마이그레이션 상태 탭을 선택합니다.

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

마이그레이션 대시보드의 표시

리소스 유형 변경사항

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

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

라벨:
  cluster_name
  container_name
  instance_id1
  namespace_id
  pod_id
  project_id
  zone2

Logging 전용:
container (GKE 컨테이너)

라벨:
  cluster_name
  container_name
  instance_id1
  namespace_id
  pod_id
  project_id
  zone2

Monitoring 및 Logging:
k8s_container (Kubernetes 컨테이너)

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

Logging 전용::
gce_instance (Compute Engine VM 인스턴스)4

라벨:
  cluster_name
  instance_id
  project_id
  zone2
Monitoring 및 Logging
k8s_node4 (Kubernetes Node)

라벨:
  cluster_name
  node_name
  project_id
  location2
 
(없음)
Monitoring 및 Logging:
k8s_pod5 (Kubernetes Pod)

라벨:
  cluster_name
  namespace_name
  pod_name
  project_id
  location2

Logging 전용
gke_cluster (GKE_cluster)

라벨:
  cluster_name
  project_id
  location

Monitoring 및 Logging:
k8s_cluster5 (Kubernetes 클러스터)

라벨:
  cluster_name
  project_id
  location

측정항목 이름 변경사항

다음 표는 다양한 측정항목 이름의 일부 샘플을 보여줍니다. 이름이 container.googleapis.com/으로 시작하는 측정항목이 사용될 때마다 이름이 kubernetes.io/로 시작하는 새 측정항목으로 변경해야 합니다.

새 측정항목 이름은 새 프리픽스 외에도 몇 가지 부분이 다릅니다. kubernetes.io 에서 새 측정항목을 찾습니다.

측정항목 이름 변경사항
(이전) 기존 Logging 및 Monitoring 측정항목 (신규) Kubernetes Engine Operations 측정항목
기존 GKE 측정항목
container.googleapis.com/

예시:
  .../container/cpu/utilization
  .../container/uptime
  .../container/memory/bytes_total
Kubernetes Engine 모니터 측정항목
kubernetes.io/

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

리소스 그룹 변경사항

자체 리소스 그룹을 정의하고 앞의 리소스 유형 변경사항 표에 나온 기존 Logging 및 Monitoring 리소스 유형 또는 앞의 측정항목 이름 변경사항 표에 나온 기존 Logging 및 Monitoring 측정항목을 사용할 경우 이러한 유형 및 측정항목을 해당하는 Kubernetes Engine Operations 리소스 유형 및 측정항목으로 변경하세요. 리소스 그룹에 커스텀 차트가 포함되어 있다면 이를 변경해야 할 수 있습니다.

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

자체 커스텀 차트 및 대시보드를 정의하고 앞의 리소스 유형 변경사항 표에 나온 기존 Logging 및 Monitoring 리소스 유형 또는 앞의 측정항목 이름 변경사항 표에 나온 기존 Logging 및 Monitoring 측정항목을 사용할 경우 이러한 유형 및 측정항목을 해당하는 Kubernetes Engine Operations 유형 및 측정항목으로 변경하세요.

커스텀 차트 및 대시보드의 경우 GKE 마이그레이션 상태 대시보드를 보면 도움이 될 수 있습니다.

  1. Cloud Console에서 Kubernetes Engine Operations로 업데이트하기 위해 GKE 클러스터가 포함된 Google Cloud 프로젝트를 선택합니다.

    Cloud Console로 이동

  2. Monitoring을 선택합니다.

  3. 마이그레이션 상태에 액세스하려면 Monitoring 탐색창에서 설정을 클릭한 다음 Kubernetes 마이그레이션 상태 탭을 선택합니다.

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

알림 정책 또는 업타임 체크를 정의하고 앞의 리소스 유형 변경사항 표에 나온 기존 Logging 및 Monitoring 리소스 유형 또는 앞의 측정항목 이름 변경사항 표에 나온 기존 Logging 및 Monitoring 측정항목을 사용할 경우 이러한 유형 및 측정항목을 해당하는 Kubernetes Engine Operations 유형 및 측정항목으로 변경하세요.

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

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

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

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

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

쿼리 로깅

쿼리를 사용하여 Cloud Logging의 로그를 찾아 필터링하고 앞의 리소스 유형 변경사항 표에 나온 기존 Logging 및 Monitoring 리소스 유형을 사용할 경우 이러한 유형을 해당하는 Kubernetes Engine Operations 유형으로 변경합니다.

로그 기반 측정항목

자체 로그 기반 측정항목을 정의하고 앞의 측정항목 이름 변경사항 또는 리소스 유형 변경사항 표에 나온 기존 Logging 및 Monitoring 측정항목 또는 리소스 유형을 사용할 경우 이러한 측정항목 및 리소스 유형을 해당하는 Kubernetes Engine Operations 측정항목 및 리소스 유형으로 변경하세요.

로그 내보내기 및 제외

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

로그 항목 콘텐츠 변경사항

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

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

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

라벨 (예시)
  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

로그 위치 변경사항

Cloud Logging에서 로그는 로그를 생성한 리소스 유형과 함께 저장됩니다. 이러한 유형은 Kubernetes Engine Operations에서 변경되었으므로 GKE Container와 같은 기존 Logging 및 Monitoring 유형이 아닌 Kubernetes Container와 같은 새로운 리소스 유형에서 로그를 찾아보세요.

다음 단계

  • 새 Kubernetes Engine Operations 대시보드에 대해 알아보려면 시스템 관찰을 참조하세요.