Google Cloud Observability - cAdvisor/Kubelet

1 개요[ | ]

cAdvisor/Kubelet

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을 사용하여 매니페스트를 설치할 수도 있습니다.

1. 수정을 위해 OperatorConfig 리소스를 엽니다.

kubectl -n gmp-public edit operatorconfig config

2. 굵게 표시된 다음 collection 섹션을 리소스에 추가합니다.

apiVersion: monitoring.googleapis.com/v1
kind: OperatorConfig
metadata:
  namespace: gmp-public
  name: config
collection:
  kubeletScraping:
    interval: 30s

3. 파일을 저장하고 편집기를 닫습니다.

잠시 후 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 리소스를 수정하지 않고 클러스터에서 특정 측정항목 수집을 일시적으로 사용 중지할 수 있습니다.

참고: 선택기 중 하나 이상에서 충족될 경우 시계열을 Managed Service for Prometheus로 내보냅니다. 즉, 자격요건을 확인할 때 단일 선택기 내의 조건은 ANDed이고 개별 선택기의 조건은 ORed입니다. 기본적으로 선택기가 지정되지 않고 모든 시계열이 내보내집니다.

2 고급 cAdvisor 설정을 위한 팁[ | ]

cAdvisor를 자체 배포하거나 cAdvisor로 고급 구성을 Kubelet에 제공하는 경우 고급 cAdvisor 설정을 사용하여 추가 라벨을 연결할 수 있습니다.

특히 Kubernetes 컨테이너 라벨 또는 환경 변수를 측정항목에 연결하지 않도록 하고, 허용 목록 패턴을 사용하여 이러한 라벨을 엄격하게 제어하세요(예: PodMonitoring의 metricRelabeling 섹션 사용).

측정항목에 추가되는 라벨 수를 제어하면 라벨 수 한도 초과가 방지될 수 있습니다.

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}