콘텐츠로 이동

다중 Kubernetes 클러스터 메트릭 수집 모범 사례


개요

하나의 워크스페이스에 여러 Kubernetes 클러스터를 연결할 때는 ENV_NAMESPACE 환경 변수를 설정해야 하며, 값은 비어 있지 않은 문자열이어야 하고, 서로 다른 클러스터의 값은 동일할 수 없습니다.

- name: ENV_NAMESPACE
  value: xxx

하나의 워크스페이스에 여러 Kubernetes 클러스터 메트릭을 연결하는 경우, Guance는 글로벌 태그를 사용하여 구분하는 방법을 제공합니다. 클러스터에 하나의 수집 대상만 있는 경우, 예를 들어 Kubernetes API Server 메트릭을 수집하는 경우, 클러스터 내 DataKit의 수가 하나 이상일 수 있습니다. 메트릭 수집 중복을 방지하기 위해 DataKit은 선출 기능을 활성화합니다. 이때 클러스터를 구분하는 방법은 ENV_GLOBAL_ELECTION_TAGS를 추가하는 것입니다.

- name: ENV_GLOBAL_ELECTION_TAGS
  value: cluster_name_k8s=k8s-prod

선출 기반이 아닌 메트릭 수집(예: Pod에 annotations을 추가하여 메트릭 수집)의 경우, Guance는 ENV_GLOBAL_HOST_TAGS 환경 변수에 글로벌 태그를 추가하는 방법을 제공합니다.

- name: ENV_GLOBAL_HOST_TAGS
  value: host=__datakit_hostname,host_ip=__datakit_ip,cluster_name_k8s=k8s-prod

위와 같이 수집된 모든 메저먼트에는 cluster_name_k8s 태그가 추가되며, 값은 k8s-prod입니다. 이것이 클러스터를 구분하는 원리입니다.

아래에서는 여러 클러스터의 Kubernetes API Server 메트릭 수집을 예로 들어 자세히 설명합니다.

전제 조건

설정 단계

1단계 테스트 환경 클러스터에 DataKit 배포

1.1 datakit.yaml 다운로드

Guance 콘솔에 로그인하여 「통합」 -「DataKit」 - 「Kubernetes」를 클릭한 후 datakit.yaml을 다운로드합니다.

1.2 Token 교체

Guance 콘솔에 로그인하여 「관리」 모듈로 이동한 후 「기본 설정」에서 token을 복사하여 datakit.yaml 파일의 ENV_DATAWAY 환경 변수 value 값에 있는 <your-token>을 교체합니다.

1.3 글로벌 태그 추가

  • datakit.yaml 파일의 ENV_GLOBAL_HOST_TAGS 환경 변수 값 끝에 cluster_name_k8s=k8s-test를 추가합니다.
  • 환경 변수 ENV_GLOBAL_ELECTION_TAGS를 추가하면 테스트 환경의 클러스터가 k8s-test가 됩니다.
  • 환경 변수 ENV_NAMESPACE 값을 k8s-test로 설정합니다. 이는 DataKit 선출을 활성화하여 워크스페이스 + 이 네임스페이스에서 하나의 DataKit만 kubernetes API Server 메트릭을 수집하도록 합니다.
- name: ENV_NAMESPACE
  value: k8s-test
- name: ENV_GLOBAL_ELECTION_TAGS
  value: cluster_name_k8s=k8s-test

이미지

1.4 Kubernetes API Server 메트릭 수집 구성

자세한 내용은 <Kubernetes API Server 통합 문서>를 참조하세요.

1.5 DataKit 배포

datakit.yaml을 테스트 클러스터의 Master 노드에 업로드하고 배포 명령을 실행합니다.

kubectl apply -f datakit.yaml

2단계 프로덕션 환경 클러스터에 DataKit 배포

2.1 datakit.yaml 수정

1단계datakit.yaml을 사용하여 k8s-testk8s-prod로 변경하면 프로덕션 환경의 클러스터가 k8s-prod가 됩니다.
또한 api-server.confurl을 수정해야 합니다.

이미지

2.2 DataKit 배포

datakit.yaml을 프로덕션 클러스터의 Master 노드에 업로드하고 배포 명령을 실행합니다.

kubectl apply -f datakit.yaml

3단계 뷰 미리보기

3.1 메트릭 미리보기

Guance 콘솔에 로그인하여 「메트릭」을 클릭한 후 「prom_api_server」를 검색하면 cluster_name_k8s 태그 아래에 두 개의 클러스터 이름이 표시됩니다.

이미지

3.2 새 뷰 생성

Guance 콘솔에 로그인하여 「시나리오」 - 「새 대시보드」를 클릭하고 Kubernetes API Server 모니터링 뷰를 선택합니다. 클러스터 이름 드롭다운에서 클러스터를 구분할 수 있습니다.

이미지

문서 평가

이 페이지가 도움이 되었나요?