簡介
Rancher 是一款開源的企業(yè)級管理 Kube.NETes 集群的平臺,為了簡化 DataKit 在 Kubernetes 集群中的部署,DataKit 支持在 Rancher 平臺的應(yīng)用市場中部署,另外 DataKit 也提供了使用 Git 倉庫管理采集器配置文件的功能。使用 Rancher 部署 DataKit 并結(jié)合 Git 管理采集器配置,是 Kubernetes 集群部署 DataKit 的一個(gè)最佳部署方式。通過 DaemonSet 方式部署 DataKit,默認(rèn)已經(jīng)開通了 Container 采集器,為了更靈活的配置 Container 采集器,本文采用自定義的方式開通 Container 采集器,即把 container.conf 文件通過 Git 倉庫來管理,然后通過 Rancher 的應(yīng)用市場來部署 DataKit,最后查看采集的指標(biāo)來驗(yàn)證 Git 倉庫中的采集器配置是否生效。
前置條件
- 安裝 Kubernetes 1.18+。
- 安裝 Rancher,并有操作 Kubernetes 集群的權(quán)限。
- 安裝 Gitlab。
- 安裝 Helm 3.0+
環(huán)境版本
本次示例使用版本如下,DataKit 版本不同,配置可能存在差異。
- Kubernetes 1.22.6
- Rancher 2.6.3
- Gitlab 14.9.4
- DataKit 1.4.5
操作步驟
步驟 1:創(chuàng)建 dk-config 代碼倉庫
登錄『Gitlab』,點(diǎn)擊 Create blank project。
Project name 輸入 datakit-conf,點(diǎn)擊『Create Project』。
進(jìn)入 dk-config 項(xiàng)目,新建 container.conf 文件,內(nèi)容如下,container 開啟了指標(biāo)采集,關(guān)閉所有鏡像的 stdout 日志采集。
[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:varrunsecretskubernetes.ioserviceaccounttoken
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"
然后點(diǎn)擊 Clone -> Clone with HTTP,獲取 git 地址是 http://120.26.37.252/root/dk-config.git
步驟 2:創(chuàng)建命名空間
為方便管理,DataKit 安裝到 datakit 命名空間。登錄『Rancher』-> 『集群』-> 『項(xiàng)目/命名空間』,點(diǎn)擊『創(chuàng)建命名空間』。
步驟 3:添加 Chart 倉庫
登錄『Rancher』-> 『集群』-> 『應(yīng)用市場』-> 『Chart 倉庫』,點(diǎn)擊『創(chuàng)建』。名稱輸入 datakit,URL 輸入 https://pubrepo.guance.com/chartrepo/datakit,點(diǎn)擊『創(chuàng)建』。
步驟 4:部署 DataKit
登錄『Rancher』-> 『集群』-> 『應(yīng)用市場』-> 『Charts』, 選擇 datakit,出現(xiàn)下圖帶 DataKit 的圖標(biāo),點(diǎn)擊進(jìn)去。
點(diǎn)擊『安裝』。
命名空間選擇 datakit,點(diǎn)擊『下一步』。
點(diǎn)擊Datakit Configuration,把 替換成觀測云的 token,由于本次使用自定義 container 采集器配置,所以把 Enable the default Inputs 中的 ,container 去掉。
點(diǎn)擊 Git Management Configurations來設(shè)置 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。然后點(diǎn)擊『安裝』 。注意,如果選中 Enable git SSH key,即是通過 SSH 方式來拉取 Git 倉庫中的配置。
點(diǎn)擊Kube-State-Metrics,選中Deployment KubeState Metrics Deployment,即會安裝 kube-state-metrics 組件,如不需要可以不選。
點(diǎn)擊 metrics-server,選中 Deployment kubeState Metrics Server Deployment,即會安裝 metrics-server 組件,如不需要可以不選。最后點(diǎn)擊『安裝』。
步驟 5:資源限額
為了限制 DataKit 使用的 CPU 和內(nèi)存,可以通過 Rancher 限制 DataKit 的資源使用。進(jìn)入『集群』-> 『工作負(fù)載』-> 『DaemonSets』,點(diǎn)擊 datakit 行的右邊,選擇『編輯配置』,進(jìn)入后點(diǎn)擊“資源限制和預(yù)留”,根據(jù)服務(wù)器的資源進(jìn)行合理分配,然后點(diǎn)擊『保存』。
步驟 6:驗(yàn)證指標(biāo)采集
登錄『Rancher』,點(diǎn)擊右上方的命令行圖標(biāo),執(zhí)行如下命令進(jìn)入 datakit,查看 gitrepos 目錄下有 container.conf 文件即表示能正常拉取 git 倉庫配置了。
kubectl get pods -n datakit
kubectl exec -it datakit-qc58m -n datakit bash
cd gitrepos/
ls
登錄『觀測云』-> 『指標(biāo)』,選中 kubernetes指標(biāo)集,查看指標(biāo)有數(shù)據(jù),即表示指標(biāo)采集正常。
步驟 7:升級
當(dāng) DataKit 有版本升級時(shí),Rancher UI 上可看到可以升級的版本。進(jìn)入 Rancher『集群』-> 『應(yīng)用市場』-> 『已安裝的 Apps』,在 datakit 行的升級列,有待升級的版本“1.4.6”,點(diǎn)擊后進(jìn)入升級界面。
選擇版本“1.4.6”,點(diǎn)擊『下一步』。
點(diǎn)擊『升級』。
升級完成后,DataKit 版本已經(jīng)是 1.4.6 版本。