K8s 集群可观测性-数据分流最佳实践

简介

在微服务架构下,一个 k8s 集群中经常会部署多套业务,同时也意味着不同团队、不同角色、不同的业务会在同一集群中,需要将不同业务的数据在不同的空间进行管理和查看。

在传统的主机环境下,这个是可以通过不同的主机部署 DataKit 时配置不同的工作空间 token 轻松实现,但是在 k8s 环境下使用 DaemonSet 方式部署,同一个 DaemonSet 无法灵活的进行多套 DataKit 配置,且在配置变更时需要重启 DataKit,当 DataKit 达到一定规模影响非常大。

因此,观测云提供的 DataWay Sinker 功能,便成为了以上问题的最佳解决方案。

方案介绍

方案流程

通过上图不难看出,该方案最重要的部分在于进行数据 TAG(标签)管理。数据分流是否达到预期、是否准确、是否实用都取决于 TAG 标签的合理使用以及规划管理。而 TAG 的管理和使用恰好是观测云平台的核心能力之一。

关于如何 TAG 的更多介绍,可以参考《TAG 在观测云中的最佳实践》,在此不再赘述。

除此以外,还支持以下属性进行分流:

  • 观测云内置自定义 key,例如:category 针对所有常规数据分类,其取值为对应数据分类的「名称」列(如时序是 metric,对象为 object 等)
  • 对象 label 属性以及 k8s 集群的自带属性,例如:namespace , container_name 等

方案实践

下面将从实际案例出发,演示如何通过 DataWay Sinker 功能实现数据的分流以及管理。

在本文中,将按照常用的业务属性 namespace 将数据划分到不同的工作空间。

前提条件,集群中已经部署了观测云 DataKit 采集器。

实践背景

在测试集群中,存在多个 namespace,如下图:

并且使用观测云 DataKit 进行 k8s 集群指标监控,但是所有的监控指标都在一个工作空间 OBS 中,如下图:

希望达到效果:根据不同的 namespace 将监控数据分流至不同的工作空间,如 namespace=datakit 的所有数据分流至观测云 datakit 工作空间。

步骤一:安装 Dataway

对于 SaaS 用户而言,可以在自己本地(k8s Cluster)部署一个 Dataway,专用于分流,然后再将数据转发给 Openway。

1)参考 Dataway 安装文档,安装 dataway ;

2)修改 dataway.yaml ,添加如下 Sinker 相关配置环境变量;

- name: DW_SECRET_TOKEN # 当开启数据分流功能时,用于与DataKit进行链接,注意tkn_后面需添加32位字符串value: "tkn_yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
- name: DW_CASCADED # 当开启数据分流功能时,SaaS用户使用级联方式链接value: "on"
- name: DW_SINKER_FILE_PATH # 挂载的sinker.json文件地址value: "/usr/local/cloudcare/dataflux/dataway/sinker.json"
- name: DW_REMOTE_HOST # 配置级联地址value: "https://openway.guance.com"

这里使用的是文件的方式配置分流规则,同时支持 etcd 进行配置,具体配置可以参考 Dataway 配置 。

3)部署 dataway。

步骤二:编辑分流规则

创建文件 sinker.json ,填写如下内容,并将文件挂载至 dataway 容器中。

{"strict":true,"rules": [{"rules": ["{ namespace = 'utils'}" # 匹配规则],# 对应工作空间的openway地址及token"url": "https://openway.guance.com?token=tkn_cb1a9a53fcb04436a4adab6435327fca" },{"rules": ["{ namespace = 'datakit'  }"],"url": "https://openway.guance.com?token=tkn_c6e8ae1bbfa2489aba843cc56baf3c66"},{"rules": ["{ namespace != 'datakit',namespace!='utils'  }"],"url": "https://openway.guance.com?token=tkn_1618f90ef13b482d9f682f30f7118d2f"}]
}
步骤三:修改 DataKit 配置

1)修改 DataKit 分流环境变量配置;

        - name: ENV_DATAWAY # 步骤一中Dataway地址和SECRET_TOKENvalue: http://10.16.253.114:9528?token=tkn_yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy- name: ENV_SINKER_GLOBAL_CUSTOMER_KEYS # 指定分流的keyvalue: namespace- name: ENV_DATAWAY_ENABLE_SINKER # 开启分流value: "true"

2)重新部署 DataKit 。

最终效果

  • datakit 工作空间中只有 namespace 为 datakit 的数据
  • utils 工作空间中只有 namespace 为 utils 的数据
  • OBS 工作空间中没有 utils 和 datakit 数据


 

至此,分流成功。

总结

除以上的例子外,也可以利用 Datakit 内置的自定义 Key,它们一般不会出现在采集的数据中,但 Datakit 可以以这些 Key 来对数据进行分组。如果在这些 Key 的维度有分流的需求,可以将它们添加到「全局自定义 Key」列表中(这些 Key 默认都不配置)。我们可以使用内置一些自定义 Key 来实现数据分流。具体分流规则可以参考内置自定义 key 分流 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/662939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《元梦之星》赛季更新带来“新”内容,为何却被玩家集体声讨?

前段时间,《元梦之星》迎来了“山海奇遇”赛季的重磅更新,诸多“新”内容的上线吸引了很多玩家们的关注,然而在新版本开启之后没有多,新玩法新时装甚至是游戏中的新改动都引起了不少玩家的不满。 在新赛季开启之后,玩家…

Python爬虫http基本原理

HTTP 基本原理 在本节中,我们会详细了解 HTTP 的基本原理,了解在浏览器中敲入 URL 到获取网页内容之间发生了什么。了解了这些内容,有助于我们进一步了解爬虫的基本原理。 2.1.1 URI 和 URL 这里我们先了解一下 URI 和 URL,URI…

抖音弹幕直播玩法汉字找不同文字找不同无人值执守自动玩游戏自带语音播报的开发日志

#找不同# 要解决如下几个问题: 1.声音sprite的录制和调用,解决方案以及解决库如下: howler.min.js://一款不错的音频播放js库。 2.鼠标自动飘浮,使用的库 anime.min.js 3.资源预加载 preload.min.js 4.其它使用到的库 jquery,vue

stack和queue及优先级队列和适配器(包括deque)的介绍

stack stack的介绍 stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组…

Android使用ScrollView导致鼠标点击事件无效

平台 测试平台: RK3288 Android8.1RK3588 Android 12 问题 首先, 这个问题的前提是, 使用的输入设备是**鼠标**, 普通的触摸屏并不会出现这个问题. 大致的流程是APP的UI布局中采用ScrollView作为根容器, 之后添加各类子控件, 在一起准备就绪后, 使用鼠标进行功能测试, 出现…

国产隔离芯片的质量控制与发展趋势

随着电子技术的飞速发展,国产隔离芯片在电力电子、通信设备等领域中扮演着重要角色。然而,随之而来的是对于其质量控制的迫切需求。本文将从结构、制造工艺、测试手段等方面对国产隔离芯片的质量控制进行分析,并展望其未来的发展趋势。 一、国…

element-ui link 组件源码分享

link 组件的 api 涉及的内容不是很多,源码部分的内容也相对较简单,下面从以下这三个方面来讲解: 一、组件结构 1.1 组件结构如下图: 二、组件属性 2.1 组件主要有 type、underline、disabled、href、icon 这些属性,…

KVM-安装-使用-迁移

一. KVM安装 1. 基础安装 # 下载源 curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 安装基础软件 yum -y install tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap …

批量修改文件后缀名

需要将/opt/module/test/路径下的txt文件后缀修改为cpp,并且以年份结尾 代码如下: #!/bin/bashyear2020 directory"/opt/module/test/"cd "$directory" || exit 1for name in *.txt; donew_name"${name%.txt}_${year}.cpp&qu…

SpringBoot security 安全认证(一)——登录验证

本节内容:使用springboot自动security模块实现用户登录验证功能; 登录过程如下图: AuthenticationManager内容实现用户账号密码验证,还可以对用户状态(启用/禁用),逻辑删除,账号是否…

LeetCode.189. 轮转数组

题目 题目链接 分析 首先能想到的就是可以用一个新数组,先保存原数组的后 k 个元素,再保存原数组的前 n−k 个元素。但题目要求不使用额外的数组空间,那么就需要在原数组上做操作。 我们可以先把整个数组翻转一下,这样后半段元…

虚幻UE5Matehuman定制自己的虚拟人,从相机拍照到UE5制作全流程

开启自己的元宇宙,照片扫描真实的人类,生成虚拟形象,保姆级教程,欢迎大家指正。 需要的软件: 制作流程: 一.拍照。 围绕自己拍照,大概20多张图就差不多了,把脑门漏出来,无需拍后脑勺。 拍照方式 例如,拍照时尽量不要在脸上体现出明显的光源方向。

07. 【Linux教程】远程登录

Linux 远程登录 前面介绍了如何安装 Linux 终端工具,本小节介绍本地电脑如何使用 ssh 命令远程登录、Linux 终端工具远程登录的方式,这两种登录方式都是基于 ssh 网络安全协议的,学会使用远程登录 Linux 服务器,会让你对 Linux 系…

Postman(接口测试工具),什么是Postman接口

目录 一.基本介绍 Postman 是什么Postman 快速入门快速入门需求说明 二.Postman 完成 Controller 层测试 需要的代码: Java类request.jspsuccess.jsp1. 完成请求2. 完成请求3. 完成请求4. 完成请求5. 完成请求 三.发送join 目录 一.基本介绍 Postman 是什么 …

使用 Dockerfile 定制镜像详解

使用 Dockerfile 定制镜像详解 1.DockerfileFROM 指定基础镜像RUN 执行命令构建镜像 2.COPY 复制文件3.ADD 更高级的复制文件4.CMD 容器启动命令5.ENTRYPOINT 入口点6.ENV 设置环境变量7.ARG 构建参数8.VOLUME 定义匿名卷9.EXPOSE 暴露端口10.WORKDIR 指定工作目录11.USER 指定…

通过Netbackup恢复Oracle备份实操手册

1、系统环境描述 1 2、恢复前数据备份 2 2.1 在NBU上执行一次完整的备份 2 2.2 查看ORACLE的备份集 3 2.2.1在备份客户端上查看备份集 3 2.2.2在备份服务器netbackup上查看客户端备份集 4 3、本机恢复方法 5 3.1丢失SPFILE文件恢复方法 5 3.2丢失CONTROLFILE文件恢复方…

51单片机编程应用(C语言):模块化编程

下面我们模块化几个函数: Delay.c //延时子函数 void Delay(unsigned int xms) {unsigned char i, j;while(xms--){i 2;j 239;do{while (--j);} while (--i);} } Delay.h #ifndef __DELAY_H__ #define __DELAY_H__void Delay(unsigned int xms);#endifNixie.h …

js 设置、获取、删除标签属性以及H5自定义属性

1. 设置标签属性 使用setAttribute()(‘属性名’, ‘属性值’)方法可以添加、修改、删除属性。   下面的demo是为input添加、修改、删除value属性&#xff1a; 1.1. HTML <input type"text" class"input"> <input type"text" class…

有没有合适写毕业论文的AI工具?

最近挺多同学在忙着写毕业论文&#xff0c;不断在“提交-打回-修改-提交”过程里循环着&#xff0c;好不容易写完了&#xff0c;还得考虑论文查重的问题&#xff01;基哥作为一名曾经的毕业生&#xff0c;当然也体验过这种痛苦了。 但是&#xff0c;大人&#xff0c;时代变了&…

无法在 word 中登录 Grammarly

目录 1. 情况描述 2. 解决方法 3. 原因分析 1. 情况描述 在浏览器中可以登录 Grammarly&#xff0c;但是在 word 中登录失败&#xff0c;大致如下图所示&#xff1a; 我自己没有截图&#xff0c;这是网上别人的图&#xff0c;但差不多都长这个样子。 2. 解决方法 我点击了…