简介
在使用观测云期间,有时需要针对一个工作空间接入多个 Kubernetes 集群指标,通过观测云提供的全局 Tag 的方式来进行区分,大大提高了效率。下面是我总结的操作步骤。
当集群中只有一个采集对象,比如采集 kubernetes API Server 指标,集群中 DataKit 的数量会大于一个,为了避免指标采集重复,DataKit 开启了选举功能,这个时候区分集群的方式是增加ENV_GLOBAL_ELECTION_TAGS。
1 - name: ENV_GLOBAL_ELECTION_TAGS 2 3 value: cluster_name_k8s=k8s-prod
而针对非选举类的指标采集,比如为 Pod 增加 annotations 的方式进行指标采集,观测云提供了在 ENV_GLOBAL_HOST_TAGS 环境变量中增加全局 Tag 的方式。注意旧版本这个环境变量名称是 ENV_GLOBAL_TAGS。
-name:ENV_GLOBAL_HOST_TAGS value:host=__datakit_hostname,host_ip=__datakit_ip,cluster_name_k8s=k8s-prod
上述采集到的指标集都会加上 cluster_name_k8s 的 Tag,值是 k8s-prod,这就是区分集群的原理。下面就以采集多个集群中的 kubernetes API Server 指标为例来进行详细说明。
前置条件
·安装 Kubernetes 1.18+
·观测云账号
操作步骤
步骤 1:测试环境集群部署 DataKit
1.1 下载 datakit.yaml
登录『观测云』,点击『集成』模块,再点击左上角『DataKit』,选择『Kubernetes』,下载 datakit.yaml。
1.2 替换 Token
登录『观测云』,进入『管理』模块,在『基本设置』里面复制 token,替换 datakit.yaml 文件中的 ENV_DATAWAY 环境变量的 value 值中的 。
1.3 增加全局 Tag
在 datakit.yaml 文件中的 ENV_GLOBAL_TAGS 环境变量值最后增加 cluster_name_k8s=k8s-test。再增加环境变量 ENV_GLOBAL_ELECTION_TAGS。这样测试环境的集群就是 k8s-test。
1 - name: ENV_GLOBAL_ELECTION_TAGS 2 value: cluster_name_k8s=k8s-test
1.4 配置 Kubernetes API Server指标采集
详见【 Kubernetes API Server 集成文档】https://preprod-docs.cloudcare.cn/best-practices/integrations/container/kubernetes-api-server
1.5 部署 DataKit
把 datakit.yaml 上传到测试集群的 Master 节点,执行部署命令。
1 kubectlapply-fdatakit.yaml
步骤 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 节点,执行部署命令。
1 kubectlapply-fdatakit.yaml
步骤 3:视图预览
3.1 指标预览
登录『观测云』,点击『指标』,搜索 prom_api_server,在 cluster_name_k8s 标签下面已经有两个集群的名称。
3.2 新建视图
登录『观测云』,点击『场景』->『新建仪表板』,选择 Kubernetes API Server 监控视图,集群名称下拉框可以区分集群了。
标签:name,Kubernetes,yaml,采集,datakit,集群,ENV,k8s From: https://www.cnblogs.com/littleguance/p/16775843.html