GKE Dataplane V2 관측 가능성은 GKE Dataplane V2 측정항목과 Kubernetes 워크로드에 대한 통계를 제공합니다. GKE 버전 1.28 이상부터 GKE Dataplane V2 관측 가능성으로 다음 작업을 할 수 있습니다.
- Google Cloud Managed Service for Prometheus, Cloud Monitoring, 측정항목 탐색기를 사용하여 네트워크 측정항목 캡처, 관찰, 알림 설정
- 클러스터의 특정 서비스에 대한 트래픽 흐름 이해
- Kubernetes 워크로드의 네트워크 상태 이해 및 문제 식별
- Kubernetes 네트워크 정책 확인
GKE Dataplane V2 관측 가능성은 다음과 같은 문제 해결 도구를 제공합니다.
- Kubernetes 클러스터 네트워크 토폴로지
- 실시간 트래픽 흐름과 연결 정보가 포함된 Kubernetes 네트워크 정책 결과 테이블
- Kubernetes 트래픽 흐름 문제를 해결하기 위한 명령줄 도구
GKE Dataplane V2 측정항목
GKE Dataplane V2 측정항목은 다음에 대한 트래픽 흐름 정보를 제공합니다.
- 트래픽 흐름: GKE가 포드와 서비스 간의 흐름을 처리하는 방법에 대한 통계입니다.
네트워크 정책 시행: GKE가 Kubernetes 네트워크 정책을 적용하는 방법에 대한 정보입니다.
GKE Dataplane V2 측정항목을 사용하면 다음 도구를 사용하여 Kubernetes 워크로드를 모니터링하고 문제를 해결할 수 있습니다.
- Google Cloud Managed Service for Prometheus로 GKE Dataplane V2 측정항목을 보고 분석할 수 있습니다. Google Cloud Managed Service for Prometheus 구성을 수정하여 Google Cloud Managed Service for Prometheus 수집에 대해 선택한 측정항목을 추가하거나 삭제할 수 있습니다.
- Cloud Monitoring 측정항목 탐색기로 포드 수준의 트래픽 흐름 세부정보를 확인합니다.
- 모든 측정항목을 탐색하고 사용하기 위한 Cloud Monitoring 예를 들어 GKE Dataplan V2 측정항목이 특정 기준점을 초과할 때 트리거되는 알림을 만들 수 있습니다.
- 자체 관리형 Grafana로 Google Cloud Managed Service for Prometheus에서 수집한 측정항목을 시각화합니다.
Google Cloud Managed Service for Prometheus를 사용 설정하면 다음 작업을 수행합니다.
- GKE가
PodMonitoring
리소스를 만듦 - GKE가 측정항목 엔드포인트를 노출
Google Cloud Managed Service for Prometheus로 측정항목을 사용하고 PodMonitoring
리소스를 만들려면 클러스터에서 Google Cloud Managed Service for Prometheus를 사용 설정해야 합니다. Google Cloud Managed Service for Prometheus를 사용 설정하지 않으면 GKE가 측정항목 엔드포인트를 노출하지만 PodMonitoring
리소스를 만들지 않습니다.
클러스터에 GKE Dataplane V2 측정항목을 사용 설정하면 Google Cloud Managed Service for Prometheus가 다음 GKE Dataplane V2 측정항목을 수집합니다.
GKE Dataplane V2 측정항목 | 유형 | 설명 |
---|---|---|
prometheus.googleapis.com/pod_flow_egress_flows_count/counter
|
누적 | 포드에서 출발하는 흐름 수 합계입니다. |
prometheus.googleapis.com/pod_flow_ingress_flows_count/counter
|
누적 | 포드에 도착하는 흐름 수 합계입니다. |
GKE Dataplane V2 측정항목을 사용 설정하면 각 Kubernetes 노드에서 측정항목 포트가 열립니다.
오픈소스 관측 가능성 플랫폼인 Hubble을 포함한 추가 측정항목도 사용할 수 있습니다.
기본적으로 Google Cloud Managed Service for Prometheus는 이러한 추가 측정항목을 수집하지 않지만 Google Cloud Managed Service for Prometheus가 이를 수집하도록 구성할 수 있습니다. 측정항목을 수집하려면 PodMonitoring
커스텀 리소스(CR)를 구성합니다.
다음 표에서는 추가 Hubble 측정항목에 대해 설명합니다.
Hubble 측정항목 | 유형 | 설명 |
---|---|---|
hubble_flows_processed_total
|
누적 | 처리된 흐름 수 합계입니다. |
hubble_drop_total
|
누적 | 삭제된 흐름 수 합계입니다. |
hubble_port_distribution_total
|
누적 | 포트 번호별로 집계한 처리된 흐름 수 합계입니다. |
hubble_tcp_flags_total
|
누적 | 지정된 TCP 플래그가 설정된 상태로 처리된 흐름 수 합계입니다. |
hubble_icmp_total
|
누적 | 처리된 ICMP 흐름 수 합계입니다. |
GKE Dataplane V2 관측 가능성 도구
GKE Dataplane V2 관측 가능성은 GKE Dataplane V2로 배포된 Kubernetes 워크로드에 대한 네트워크 관측 가능성 및 보안 통계를 제공하는 관리형 Hubble 솔루션을 제공합니다.
사용 설정된 경우 GKE Dataplane V2 관측 가능성이 다음 구성요소를 클러스터에 배포합니다.
Hubble Relay: 각 노드에서 포드에 대한 네트워크 원격 분석 데이터를 수집하는 서비스입니다.
Hubble CLI: 클러스터 내에서 실시간 트래픽 정보를 제공하는 명령줄 인터페이스 도구입니다.
GKE Dataplane V2 관측 가능성을 클러스터에 사용 설정한 후 다음 구성요소를 배포할 수 있습니다.
- Hubble UI: Hubble Relay가 수집한 네트워크 원격 분석 데이터를 보고 분석하는 데 사용하는 웹 기반 도구입니다. Hubble UI를 배포하려면 GKE Dataplane V2 관측 가능성을 사용 설정해야 합니다.
GKE Dataplane V2 측정항목 및 관측 가능성 작동 방식
GKE Dataplane V2 관측 가능성은 다음 구성요소 및 도구를 사용하여 측정항목을 수집하고 네트워크 트래픽에 대한 통계를 제공합니다.
GKE Dataplane V2: GKE Dataplane V2 측정항목 및 관측 가능성은 eBPF 기반 GKE Dataplane V2 데이터 경로를 사용하여 지정된 워크로드를 기반으로 포드의 트래픽 흐름 및 네트워크 정책 시행에 대한 측정항목을 수집합니다.
Google Cloud Managed Service for Prometheus: GKE Dataplane V2 측정항목은 Google Cloud Managed Service for Prometheus 에이전트가 Google Cloud Observability도 빌드할 수 있는 대량의 데이터를 수집하고 저장할 수 있는 확장 가능한 모니터링 솔루션인 Google Cloud Managed Service for Prometheus에 대해 집계된 측정항목을 수집하도록 구성합니다.
Hubble: GKE Dataplane V2 관측 가능성은 오픈소스 관측 가능성 프로젝트인 Hubble을 사용합니다. Hubble은 eBPF Dataplane으로 배포된 Kubernetes 워크로드에 대한 네트워크 관측 가능성 및 보안 통계를 지원합니다.
Hubble 흐름 이벤트는 다음과 같은 경우에 발생합니다.
네트워크 연결이 먼저 설정됨
TCP 연결 상태를 나타내는 TCP 플래그가 먼저 표시됨
마지막 흐름 이벤트 이후로 5초 이상 경과 후 패킷이 전송됨
Hubble 측정항목: 어떤 포드가 서로 통신하고 있는지 식별할 때 사용할 수 있는 Kubernetes 클러스터 흐름 이벤트 수를 계산합니다.
측정항목 및 관측 가능성 사용 설정: GKE Dataplane V2와 관측 가능성을 독립적으로 사용 설정할 수 있습니다. 오픈소스 Hubble UI 기능에서 네트워크 토폴로지 시각화를 사용 설정하려면 네트워크 검사를 사용 설정해야 합니다.
Autopilot 클러스터:
측정항목은 기본적으로 사용 설정됨
관측 가능성 도구는 기본적으로 사용 중지됨
Google Cloud Managed Service for Prometheus에서 측정항목을 수집하려면 클러스터
PodMonitoring
리소스를 만들어야 합니다.
Standard 클러스터:
측정항목은 기본적으로 사용 중지됨
관측 가능성 도구는 기본적으로 사용 중지됨
Google Cloud Managed Service for Prometheus를 사용 설정하면
PodMonitoring
리소스가 자동으로 생성됩니다.PodMonitoring
리소스는 존재 확인으로 표시됩니다. 모든 측정항목을 사용 중지하도록PodMonitoring
리소스를 수정하여 Google Cloud Managed Service for Prometheus로의 측정항목 전송을 중지할 수 있습니다.
GKE Dataplane V2 관측 가능성 엔드포인트
GKE Dataplane V2 관측 가능성 구성요소는 다음 두 가지 관측 가능성 엔드포인트를 노출합니다.
측정항목 엔드포인트: Prometheus 형식으로 트래픽 측정항목을 노출하는 HTTP 엔드포인트입니다.
anetd
포드는 포트 9965로 각 클러스터 노드에서 측정항목 엔드포인트를 노출합니다.흐름 포트: gRPC 엔드포인트입니다.
hubble-relay
포드는 포트 443에 KubernetesClusterIP
서비스로 흐름 포트 엔드포인트를 노출합니다.hubble-relay
포드는 KubernetesClusterIP
서비스의 백엔드이며 KubernetesClusterIP
서비스에 대한 모든 요청은hubble-relay
포드에 전달됩니다. Hubble CLI 또는 Hubble UI를 사용하여 흐름 포트에 액세스할 수 있습니다.
제한사항
- GKE Dataplane V2 관측 가능성의 클러스터 전체 한도는 노드 5,000개입니다.
- GKE Dataplane V2 측정항목 및 관측 가능성은 GKE Dataplane V2가 사용 설정된 클러스터에서만 작동합니다.
- GKE Dataplane V2 측정항목은 연결 정보를 제공하기 위해 흐름 기반 측정항목으로 구현된다는 점에서 Hubble 측정항목과 유사합니다. 이러한 측정항목은 전송된 데이터 양 또는 패킷 수를 계산하지 않습니다. 측정항목은 흐름 기반 측정항목이므로 네트워크 흐름에서 전송되는 데이터 양을 정확하게 나타내지 않습니다.