简介

在使用观测云期间,有时需要针对一个工作空间接入多个 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 监控视图,集群名称下拉框可以区分集群了。

 

关于多个 Kubernetes 集群指标的采集操作的更多相关文章

  1. 在kubernetes 集群内访问k8s API服务

    所有的 kubernetes 集群中账户分为两类,Kubernetes 管理的 serviceaccount(服务账户) 和 useraccount(用户账户).基于角色的访问控制(“RBAC”)使用 ...

  2. Kubernetes集群部署史上最详细(二)Prometheus监控Kubernetes集群

    使用Prometheus监控Kubernetes集群 监控方面Grafana采用YUM安装通过服务形式运行,部署在Master上,而Prometheus则通过POD运行,Grafana通过使用Prom ...

  3. kube-liveboard: kubernetes集群可视化工具

    kube-liveboard 随着kubernetes 集群的增大,对于集群数据选取恰当的形式进行展示有助于直观反映集群的状态,方便发现集群的短板,了解集群的瓶颈.因此,笔者做了kube-livebo ...

  4. Kubernetes集群的监控报警策略最佳实践

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/M2l0ZgSsVc7r69eFdTj/article/details/79652064 本文为Kub ...

  5. 阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践

    作者 | 姚捷(喽哥)阿里云容器平台集群管理高级技术专家 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击即可完成下载. 导读:值得阿里巴巴技术人骄傲的是 2019 ...

  6. 阿里云上万个 Kubernetes 集群大规模管理实践

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 汤志敏,阿里 ...

  7. 美团点评Kubernetes集群管理实践

    背景 作为国内领先的生活服务平台,美团点评很多业务都具有非常显著.规律的”高峰“和”低谷“特征.尤其遇到节假日或促销活动,流量还会在短时间内出现爆发式的增长.这对集群中心的资源弹性和可用性有非常高的要 ...

  8. 【转载】浅析从外部访问 Kubernetes 集群中应用的几种方式

    一般情况下,Kubernetes 的 Cluster Network 是属于私有网络,只能在 Cluster Network 内部才能访问部署的应用.那么如何才能将 Kubernetes 集群中的应用 ...

  9. 监控 Kubernetes 集群应用

    Prometheus的数据指标是通过一个公开的 HTTP(S) 数据接口获取到的,我们不需要单独安装监控的 agent,只需要暴露一个 metrics 接口,Prometheus 就会定期去拉取数据: ...

随机推荐

  1. k8s QoS与pod驱逐

    概述 QoS是Quality of Service的缩写,即服务质量.每个pod属于某一个QoS分类,而Kubernetes会根据pod的QoS级别来决定pod的调度.抢占调度和驱逐优先级,而且pod ...

  2. UnifyRemoteManager-多国语言绿色版v1.3-20200315,统一远程连接自动登录软件,欢迎测试

    UnifyRemoteManager-多国语言绿色版v1.3-20200315,统一远程连接自动登录软件,欢迎测试 下载参考: 百度网盘:https://pan.baidu.com/s/15g-oXT ...

  3. 完成 DolphinScheduler 新手任务赢好礼活动 | 倒计时3 天

    想轻松参与 DolphinScheduler 项目贡献吗? 想获得 500 元京东购物卡吗? 参与活动,有机会得更多活动奖励! 活动截止至6月30日 了解更多详情: 在你参与 DolphinSched ...

  4. 手把手教你springboot集成微信支付

    20220727 最近要做一个微信小程序,需要微信支付,所以研究了下怎么在 java 上集成微信支付功能,特此记录下. 本文完整代码:点击跳转 准备工作 小程序开通微信支付 首先需要在微信支付的官网点 ...

  5. 趋势科技 redirfs模块的一个小问题

    最近看的一个问题,消息队列可以创建,但是不能获取属性,也不能发消息,返回错误为:EBADF Bad file descriptor 经过打点,确认走入了这个流程: SYSCALL_DEFINE3(mq ...

  6. CF1204E Natasha, Sasha and the Prefix Sums (卡塔兰数推理)

    题面 题解 把题意变换一下,从(0,0)走到(n,m),每次只能网右或往上走,所以假设最大前缀和为f(n),那么走的时候就要到达但不超过 y = x-f(n) 这条线, 我们可以枚举答案,然后乘上方案 ...

  7. Java 解析Tiff深入研究

    最近在读取客户发过来的tiff文件是,底层竟然报错了,错误:bandOffsets.length is wrong!   没办法,因为错误消息出现在tiff的read中,因此就对 底层序中tiff读取 ...

  8. IO流----读取文件,复制文件,追加/插入文件

    文件结构 读取文件 第一种方式 public class Test { public static void main(String[] args) throws IOException { // 最 ...

  9. c++基础思维导图2

    c++基础思维导图2 结构体 结构体的基本概念:用户自定义的数据类型 结构体定义和使用 struct 结构体名{结构体成员} struct 结构体名 变量名: struct 结构体名 变量名 = {成 ...

  10. python随机值生成的常用方法

    一.随机整数1.包含上下限:[a, b] import random #1.随机整数:包含上下限:[a, b] for i in range(10): print(random.randint(0,5 ...