Kubelet은 자체에 대한 측정항목과 해당 노드에서 실행 중인 컨테이너에 대한 cAdvisor 측정항목을 노출합니다.
Cloud Monitoring은 이러한 통합을 구성하는 대신 즉시 사용 가능한 cAdvisor/Kubelet 측정항목의 관리형 컬렉션을 제공합니다. 완전 관리형 컬렉션 옵션은 기본적으로 새 클러스터에서 설정되는 독자적으로 선별된 측정항목 집합을 제공합니다.
이 문서에 설명된 통합은 모든 cAdvisor 측정항목을 제공하지만, 그중 많은 측정항목이 필요하지 않을 가능성이 높으므로 필터링해야 하며 Google Kubernetes Engine 및 기타 Kubernetes 환경에서 사용할 수 있습니다. cAdvisor/Kubelet 측정항목의 관리형 집합은 가장 유용한 측정항목만 제공하도록 선별되었으며 GKE에서만 사용할 수 있습니다. 자세한 내용은 패키지: cAdvisor/Kubelet 측정항목을 참조하세요.
이 문서의 설명대로 cAdvisor 측정항목 컬렉션을 설정하면 이 구성이 GKE 관리형 cAdvisor 구성을 대체합니다. 이 문서에 설명된 구성은 관리형 cAdvisor 측정항목의 상위 집합을 사용 설정합니다.
이 문서에 설명된 접근 방식을 사용하는 경우 커스텀 PodMonitoring 구성을 사용하는 대신 OperatorConfig를 편집하여 cAdvisor 및 Kubelet 측정항목을 자동으로 스크래핑하도록 관리형 컬렉션을 구성할 수 있습니다.
매니페스트를 로컬 파일에 복사한 다음 kubectl apply -f FILE_NAME
을 실행하여 설치할 수 있습니다.
Terraform을 사용하여 매니페스트를 설치할 수도 있습니다.
수정을 위해 OperatorConfig 리소스를 엽니다.
kubectl -n gmp-public edit operatorconfig config
굵게 표시된 다음
collection
섹션을 리소스에 추가합니다.apiVersion: monitoring.googleapis.com/v1 kind: OperatorConfig metadata: namespace: gmp-public name: config collection: kubeletScraping: interval: 30s
파일을 저장하고 편집기를 닫습니다.
잠시 후 Kubelet 측정항목 엔드포인트가 스크래핑되어 측정항목을 Managed Service for Prometheus에서 쿼리하는 데 사용할 수 있게 됩니다.
Kubelet 스크래핑은 몇 가지 기본 필터와 함께 제공되며, 아래와 같이 OperatorConfig 리소스의 collection
섹션에 필터를 추가할 수 있습니다. filter.matchOneOf
구성 섹션은 Prometheus 페더레이션에 대해 match[]
매개변수와 동일한 시맨틱스를 갖습니다.
다음 예시에서는 container_foo
또는 container_bar
로 시작하는 측정항목을 필터링합니다.
collection: filter: matchOneOf: - '{__name__!~"container_foo.*|container_bar.*"}'
이 OperatorConfig 컬렉션 필터를 디버깅 목적으로 사용할 수도 있습니다. 예를 들어 PodMonitoring 리소스를 수정하지 않고 클러스터에서 특정 측정항목 수집을 일시적으로 사용 중지할 수 있습니다.
고급 cAdvisor 설정을 위한 팁
cAdvisor를 자체 배포하거나 cAdvisor로 고급 구성을 Kubelet에 제공하는 경우 고급 cAdvisor 설정을 사용하여 추가 라벨을 연결할 수 있습니다.
특히 Kubernetes 컨테이너 라벨 또는 환경 변수를 측정항목에 연결하지 않도록 하고, 허용 목록 패턴을 사용하여 이러한 라벨을 엄격하게 제어하세요(예: PodMonitoring의 metricRelabeling
섹션 사용).
측정항목에 추가되는 라벨 수를 제어하면 라벨 수 한도 초과가 방지될 수 있습니다.