Container Network Observability란?
컨테이너 네트워크 관찰성은 고급 컨테이너 네트워킹 서비스 제품군의 기능입니다 . 컨테이너화된 워크로드에 대한 탁월한 표시 여부를 제공하는 차세대 모니터링 및 진단 도구를 제공합니다. 이러한 도구를 사용하면 네트워크 문제를 쉽게 찾아내고 해결할 수 있어 애플리케이션에 대한 최적의 성능을 보장할 수 있습니다.
컨테이너 네트워크 관찰성은 기본 데이터 평면이 Cilium인지 아니면 Cilium이 아닌지(둘 다 지원됨) 여부에 관계없이 Hubble과 원활하게 통합되는 모든 Linux 워크로드와 호환되어 컨테이너 네트워킹 요구 사항에 대한 유연성을 보장합니다.
참고 항목
Cilium 데이터 평면 시나리오의 경우 Container Network Observability는 Kubernetes 버전 1.29부터 사용할 수 있습니다. Container Network Observability는 버전 2.0부터 Azure Linux를 비롯한 모든 Linux 배포판에서 지원됩니다.
컨테이너 네트워크 관찰 기능
Container Network Observability는 클러스터에서 네트워크 관련 문제를 모니터링하는 다음과 같은 기능을 제공합니다.
노드 수준 메트릭: 최적의 애플리케이션 성능을 유지하려면 노드 수준에서 컨테이너 네트워크의 상태를 이해해야 합니다. 이러한 메트릭은 노드별 트래픽 볼륨, 삭제된 패킷, 연결 수 등에 대한 인사이트를 제공합니다. 메트릭은 Prometheus 형식으로 저장되므로 Grafana에서 볼 수 있습니다.
Hubble 메트릭(DNS 및 Pod 수준 메트릭): 이러한 Prometheus 메트릭에는 원본 및 대상 Pod 정보가 포함되어 있어 세부적인 수준에서 네트워크 관련 문제를 정확히 찾아낼 수 있습니다. 메트릭에는 트래픽 볼륨, 삭제된 패킷, TCP 초기화, L4/L7 패킷 흐름 등이 포함됩니다. DNS 오류 및 DNS 요청 누락 응답을 다루는 DNS 메트릭(현재는 비 Cilium 데이터 평면에만 해당)도 있습니다.
Hubble 흐름 로그: 흐름 로그는 클러스터의 네트워크 활동에 대한 심층적인 표시 여부를 제공합니다. Pod와의 모든 통신이 기록되므로 시간 경과에 따른 연결 문제를 조사할 수 있습니다. 흐름 로그에서 다음과 같은 질문에 대한 답을 얻을 수 있습니다. 서버가 클라이언트의 요청을 받았나요? 클라이언트 요청과 서버 응답 간의 왕복 대기 시간은 얼마인가요?
Hubble CLI: Hubble CLI(명령줄 인터페이스)는 사용자 지정 가능한 필터링 및 서식을 사용하여 전체 클러스터에서 흐름 로그를 검색할 수 있습니다.
Hubble UI: Hubble UI는 클러스터 네트워크 활동을 탐색하기 위한 사용자 친화적인 브라우저 기반 인터페이스입니다. 흐름 로그를 기반으로 서비스 연결 그래프를 만들고, 선택한 네임스페이스에 대한 흐름 로그를 표시합니다. 사용자는 Hubble UI를 실행하는 데 필요한 인프라를 프로비전하고 관리할 책임이 있습니다.
컨테이너 네트워크 관찰 가능성의 주요 이점
CNI 독립적: kubenet을 포함한 모든 Azure CNI 변형에서 지원됩니다.
Cilium 및 비 Cilium: Cilium 및 비 Cilium 데이터 평면 모두에서 균일하고 원활한 환경을 제공합니다.
eBPF 기반 네트워크 가시성: 성능 및 확장성을 위해 eBPF(확장 버클리 패킷 필터)를 활용하여 애플리케이션 성능에 영향을 미치기 전에 잠재적인 병목 현상 및 정체 문제를 식별합니다. 트래픽 볼륨, 손실된 패킷, 연결 정보 등 주요 네트워크 상태 표시기에 대한 인사이트를 얻습니다.
네트워크 활동에 대한 심층적인 표시 여부: 상세한 네트워크 흐름 로그를 통해 애플리케이션이 서로 통신하는 방식을 이해합니다.
간소화된 메트릭 저장 및 시각화 옵션: 다음 중에서 선택합니다.
- Azure 관리형 Prometheus 및 Grafana: Azure는 인프라와 유지 관리를 관리하므로 사용자는 메트릭 구성 및 메트릭 시각화에 집중할 수 있습니다.
- BYO(Bring Your Own) Prometheus 및 Grafana: 사용자는 고유의 인스턴스를 배포 및 구성하고 기본 인프라를 관리합니다.
메트릭
노드 수준 메트릭
다음 메트릭은 노드별로 집계됩니다. 모든 메트릭에는 레이블이 포함됩니다.
cluster
instance
(노드 이름)
Cilium 데이터 평면 시나리오의 경우 Container Network Observability는 Linux에 대해서만 메트릭을 제공하며 Windows는 현재 지원되지 않습니다. Cilium은 Container Network Observability에서 사용하는 다음을 포함하여 여러 메트릭을 노출합니다.
메트릭 이름 | 설명 | 추가 레이블 | Linux | Windows |
---|---|---|---|---|
cilium_forward_count_total | 전달된 총 패킷 수 | direction |
✅ | ❌ |
cilium_forward_bytes_total | 전달된 총 바이트 수 | direction |
✅ | ❌ |
cilium_drop_count_total | 총 삭제된 패킷 수 | direction , reason |
✅ | ❌ |
cilium_drop_bytes_total | 총 삭제 바이트 수 | direction , reason |
✅ | ❌ |
Pod 수준 메트릭(Hubble 메트릭)
다음 메트릭은 Pod별로 집계됩니다(노드 정보는 보존됨). 모든 메트릭에는 레이블이 포함됩니다.
cluster
instance
(노드 이름)source
또는destination
발신 트래픽의 경우 원본 Pod 네임스페이스/이름이 포함된 source
레이블이 있습니다.
수신 트래픽의 경우 대상 Pod 네임스페이스/이름이 포함된 destination
레이블이 있습니다.
메트릭 이름 | 설명 | 추가 레이블 | Linux | Windows |
---|---|---|---|---|
hubble_dns_queries_total | 쿼리별 총 DNS 요청 | source 또는 destination , query , qtypes (쿼리 형식) |
✅ | ❌ |
hubble_dns_responses_total | 쿼리/응답별 총 DNS 응답 | source 또는 destination , query , qtypes (쿼리 형식), rcode (반환 코드), ips_returned (IP 수) |
✅ | ❌ |
hubble_drop_total | 총 삭제된 패킷 수 | source 또는 destination , protocol , reason |
✅ | ❌ |
hubble_tcp_flags_total | 플래그별 총 TCP 패킷 수입니다. | source 또는 destination , flag |
✅ | ❌ |
hubble_flows_processed_total | 처리된 총 네트워크 흐름(L4/L7 트래픽) | source 또는 destination , protocol , verdict , type , subtype |
✅ | ❌ |
제한 사항
- Pod 수준 메트릭은 Linux에서만 사용할 수 있습니다.
- Cilium 데이터 평면은 Kubernetes 버전 1.29부터 지원됩니다.
- 메트릭 레이블은 Cilium 클러스터와 비 Cilium 클러스터 간에 미묘한 차이가 있을 수 있습니다.
- Cilium 기반 클러스터의 경우 DNS 메트릭은 클러스터에 CNP(Cilium 네트워크 정책)가 구성된 Pod에만 사용할 수 있습니다.
- 흐름 로그는 현재 공기가 틈새가 있는 클라우드에서 사용할 수 없습니다.
- 허블 노드 에이전트 중 하나가 중단되고 Hubble CLI가 중단될 수 있는 경우 허블 릴레이가 중단될 수 있습니다.
확장
Azure 관리형 Prometheus 및 Grafana는 서비스별 규모 제한 사항을 적용합니다. 자세한 내용은 Azure Monitor에서 대규모로 Scrape Prometheus 메트릭을 참조하세요.
가격 책정
Important
고급 컨테이너 네트워킹 서비스는 유료 제품입니다. 가격 책정에 대한 자세한 내용은 고급 컨테이너 네트워킹 서비스 - 가격 책정을 참조 하세요.
다음 단계
- Container Network Observability를 사용하여 AKS 클러스터를 만들려면 AKS(Azure Kubernetes Service)에 대한 컨테이너 네트워크 관찰 설정 설정을 참조하세요.
Azure Kubernetes Service