다중 Kubernetes 클러스터 메트릭 수집 모범 사례¶
개요¶
하나의 워크스페이스에 여러 Kubernetes 클러스터를 연결할 때는 ENV_NAMESPACE 환경 변수를 설정해야 하며, 값은 비어 있지 않은 문자열이어야 하고, 서로 다른 클러스터의 값은 동일할 수 없습니다.
하나의 워크스페이스에 여러 Kubernetes 클러스터 메트릭을 연결하는 경우, Guance는 글로벌 태그를 사용하여 구분하는 방법을 제공합니다. 클러스터에 하나의 수집 대상만 있는 경우, 예를 들어 Kubernetes API Server 메트릭을 수집하는 경우, 클러스터 내 DataKit의 수가 하나 이상일 수 있습니다. 메트릭 수집 중복을 방지하기 위해 DataKit은 선출 기능을 활성화합니다. 이때 클러스터를 구분하는 방법은 ENV_GLOBAL_ELECTION_TAGS를 추가하는 것입니다.
선출 기반이 아닌 메트릭 수집(예: 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 메트릭 수집을 예로 들어 자세히 설명합니다.
전제 조건¶
- Kubernetes 1.18+ 설치
- Guance 계정
설정 단계¶
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 노드에 업로드하고 배포 명령을 실행합니다.
2단계 프로덕션 환경 클러스터에 DataKit 배포¶
2.1 datakit.yaml 수정¶
1단계의 datakit.yaml을 사용하여 k8s-test를 k8s-prod로 변경하면 프로덕션 환경의 클러스터가 k8s-prod가 됩니다.
또한 api-server.conf의 url을 수정해야 합니다.
2.2 DataKit 배포¶
datakit.yaml을 프로덕션 클러스터의 Master 노드에 업로드하고 배포 명령을 실행합니다.
3단계 뷰 미리보기¶
3.1 메트릭 미리보기¶
Guance 콘솔에 로그인하여 「메트릭」을 클릭한 후 「prom_api_server」를 검색하면 cluster_name_k8s 태그 아래에 두 개의 클러스터 이름이 표시됩니다.
3.2 새 뷰 생성¶
Guance 콘솔에 로그인하여 「시나리오」 - 「새 대시보드」를 클릭하고 Kubernetes API Server 모니터링 뷰를 선택합니다. 클러스터 이름 드롭다운에서 클러스터를 구분할 수 있습니다.



