Rancher를 통한 DataKit 배포 모범 사례¶
작성자: 유위제
개요¶
Rancher는 Kubernetes 클러스터를 관리하기 위한 오픈 소스 엔터프라이즈급 플랫폼입니다. Kubernetes 클러스터에서 DataKit 배포를 간소화하기 위해 DataKit은 Rancher 플랫폼의 애플리케이션 마켓에서 배포를 지원하며, Git 리포지토리를 사용하여 수집기 구성 파일을 관리하는 기능도 제공합니다.
Rancher를 사용하여 DataKit을 배포하고 Git을 통해 수집기 구성을 관리하는 것은 Kubernetes 클러스터에 DataKit을 배포하는 가장 좋은 방법입니다. DaemonSet 방식으로 DataKit을 배포하면 기본적으로 컨테이너 수집기가 활성화됩니다. 컨테이너 수집기를 더 유연하게 구성하기 위해 본 문서에서는 사용자 정의 방식으로 컨테이너 수집기를 활성화합니다. 즉, container.conf 파일을 Git 리포지토리로 관리한 다음 Rancher의 애플리케이션 마켓을 통해 DataKit을 배포하고, 마지막으로 수집된 메트릭을 확인하여 Git 리포지토리의 수집기 구성이 적용되었는지 검증합니다.
사전 조건¶
- Kubernetes 1.18+ 설치
- Rancher 설치 및 Kubernetes 클러스터 운영 권한 보유
- Gitlab 설치
- Helm 3.0+ 설치
작업 단계¶
Warning
본 문서의 예시에서 사용된 버전 정보는 다음과 같습니다: DataKit 1.4.5, Kubernetes 1.22.6, Rancher 2.6.3, Gitlab 14.9.4
1단계: dk-config 코드 리포지토리 생성¶
「Gitlab」에 로그인하여 「Create blank project」를 클릭합니다.
Project name에 datakit-conf를 입력하고 「Create Project」를 클릭합니다.
dk-config 프로젝트로 이동하여 container.conf 파일을 생성하고 내용을 다음과 같이 작성합니다. container는 메트릭 수집을 활성화하고 모든 이미지의 stdout 로그 수집을 비활성화합니다.
container.conf
[inputs.container]
docker_endpoint = "unix:///var/run/docker.sock"
containerd_address = "/var/run/containerd/containerd.sock"
enable_container_metric = true
enable_k8s_metric = true
enable_pod_metric = true
## Containers logs to include and exclude, default collect all containers. Globs accepted.
container_include_log = []
container_exclude_log = ["image:*"]
exclude_pause_container = true
## Removes ANSI escape codes from text strings
logging_remove_ansi_escape_codes = false
kubernetes_url = "https://kubernetes.default:443"
## Authorization level:
## bearer_token -> bearer_token_string -> TLS
## Use bearer token for authorization. ('bearer_token' takes priority)
## linux at: /run/secrets/kubernetes.io/serviceaccount/token
## windows at: C:\var\run\secrets\kubernetes.io\serviceaccount\token
bearer_token = "/run/secrets/kubernetes.io/serviceaccount/token"
# bearer_token_string = "<your-token-string>"
[inputs.container.tags]
# some_tag = "some_value"
# more_tag = "some_other_value"
그런 다음 「Clone」 - 「Clone with HTTP」를 클릭하여 Git 주소 http://120.26.37.252/root/dk-config.git를 확인합니다.
2단계: 네임스페이스 생성¶
관리를 용이하게 하기 위해 DataKit을 datakit 네임스페이스에 설치합니다.
「Rancher」 - 「클러스터」 - 「프로젝트/네임스페이스」에 로그인하여 「네임스페이스 생성」을 클릭합니다.
이름에 「datakit」를 입력하고 「생성」을 클릭합니다.
3단계: Chart 리포지토리 추가¶
「Rancher」 - 「클러스터」 - 「애플리케이션 마켓」 - 「Chart 리포지토리」에 로그인하여 「생성」을 클릭합니다. 이름에 datakit를 입력하고 URL에 https://pubrepo.guance.com/chartrepo/datakit를 입력한 후 「생성」을 클릭합니다.
4단계: DataKit 배포¶
「Rancher」 - 「클러스터」 - 「애플리케이션 마켓」 - 「Charts」에 로그인하여 「datakit」를 선택하면 아래 그림과 같이 DataKit 아이콘이 나타납니다. 클릭하여 들어갑니다.
「설치」를 클릭합니다.
네임스페이스로 「datakit」를 선택하고 「다음」을 클릭합니다.
「Datakit Configuration」을 클릭하고 <your-token>을 Guance의 토큰으로 바꿉니다. 이번에는 사용자 정의 컨테이너 수집기 구성을 사용하므로 Enable the default Inputs에서 container를 선택 해제합니다.
「Git Management Configurations」를 클릭하여 Git 리포지토리 정보를 아래 그림과 같이 설정합니다.
- 「Enable Use Git Management Configurations」를 선택합니다.
- 「The Git Hub Url」에는 dk-config의 Git 주소 http://120.26.37.252/root/dk-config.git를 입력하고, Git 사용자 이름 root와 비밀번호 xxxxxx를
http://뒤에 추가합니다. - 「The Git Branch」에는 브랜치 main을 입력합니다.
그런 다음 「설치」를 클릭합니다.
참고: 「Enable git SSH key」를 선택하면 SSH 방식을 통해 Git 리포지토리의 구성을 가져옵니다.
「Kube-State-Metrics」를 클릭하고 「Deployment KubeState Metrics Deployment」를 선택하면 kube-state-metrics 구성 요소가 설치됩니다. 필요하지 않은 경우 선택하지 않아도 됩니다.
「metrics-server」를 클릭하고 「Deployment kubeState Metrics Server Deployment」를 선택하면 metrics-server 구성 요소가 설치됩니다. 필요하지 않은 경우 선택하지 않아도 됩니다.
마지막으로 「설치」를 클릭합니다.
5단계: 리소스 할당량¶
DataKit이 사용하는 CPU와 메모리를 제한하려면 Rancher를 통해 DataKit의 리소스 사용을 제한할 수 있습니다.
「클러스터」 - 「워크로드」 - 「DaemonSets」로 이동하여 datakit 행의 오른쪽을 클릭하고 「구성 편집」을 선택합니다. 이동 후 「리소스 제한 및 예약」을 클릭하고 서버 리소스에 따라 적절히 할당한 후 「저장」을 클릭합니다.
6단계: 메트릭 수집 확인¶
「Rancher」에 로그인하여 오른쪽 상단의 명령줄 아이콘을 클릭하고 다음 명령을 실행하여 datakit에 접속합니다.
gitrepos 디렉토리 아래에 container.conf 파일이 있으면 Git 리포지토리 구성을 정상적으로 가져올 수 있음을 의미합니다.
「Guance」 - 「메트릭」에 로그인하여 「kubernetes」 메저먼트를 선택하고 메트릭에 데이터가 있으면 메트릭 수집이 정상임을 의미합니다.
7단계: 업그레이드¶
DataKit 버전 업그레이드가 있을 경우 Rancher UI에서 업그레이드 가능한 버전을 확인할 수 있습니다.
Rancher 「클러스터」 - 「애플리케이션 마켓」 - 「설치된 Apps」로 이동하여 datakit 행의 「업그레이드」 열에 업그레이드 가능한 버전 1.4.6이 표시됩니다. 클릭하여 업그레이드 화면으로 이동합니다.
버전 1.4.6을 선택하고 「다음」을 클릭합니다.
「업그레이드」를 클릭합니다.
업그레이드가 완료되면 DataKit 버전이 1.4.6으로 변경된 것을 확인할 수 있습니다.



















