在微服务架构下,K8S集群中往往部署了多套服务,这也意味着不同的团队、不同的角色、不同的服务会在同一集群中,不同业务的数据需要在不同的空间进行管理和查看。
在传统的主机环境中,在不同主机上部署 datakit 时,通过配置不同的工作空间 token 可以很容易地实现这一点,但在使用 daemonset 部署的 k8s 环境中,同一个 daemonset 无法灵活地配置多套 datakit,配置变更时需要重启 datakit,datakit 达到一定规模后的影响非常大。
因此,Observation Cloud 提供的 Dataway Sinker 功能是解决上述问题的最佳方法。
从上图可以看出,该解决方案最重要的部分是数据标签管理。 数据卸载是否符合预期、准确和有用,取决于标签的正确使用和规划管理。 标签的管理和使用恰好是观测云平台的核心能力之一。
有关如何标记的更多信息,请参阅观测云中标记的最佳实践,此处不再赘述。
除此之外,会审还支持以下属性:
观测云内置了自定义键,例如,所有通用数据分类的类别,其值可以是对应数据分类的“名称”列(例如,时间序列是度量,对象是对象等)。
对象标签属性以及 K8S 集群的开箱即用属性,例如:namespace
container_name
等。
下面将演示如何使用数据路沉降器功能卸载和管理数据。
在本文中,我们将根据通用业务属性 namespace 将数据划分为工作区。
作为先决条件,Observation Cloud DataKit 收集器已部署在集群中。
在测试集群中,有多个命名空间,如下图所示
此外,我们使用观测云数据kit来监控K8S集群的指标,但所有的监控指标都在一个工作空间OBS中,如下图所示
预期效果是根据不同的命名空间将监视数据卸载到不同的工作区,例如:namespace=datakit
所有数据都将卸载到 Observation Cloud 数据工具包工作区。
第 1 步:安装 DataWay
对于 SaaS 用户,他们可以在本地部署一个专用于卸载的 DataWay(K8S 集群),然后将数据发送到 OpenWay。
1)参考DataWay安装文档安装DataWay;
2) 修改dataway.yaml
添加以下与沉降器相关的配置环境变量;
- 名称:DW Secret Token 开启数据分发功能后,用于与 DataKit 联动,注意需要将 32 位字符串值:添加到 TKN 中"tkn_yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"- 名称:DW Cascaded 开启数据分发功能后,SaaS用户使用级联来链接价值:"on"- 名称:DW Sinker File Path mountedJSON 文件地址值:"/usr/local/cloudcare/dataflux/dataway/sinker.json"- 名称:DW 远程主机 配置级联地址值:""
这里你使用文件模式来配置分流规则,配置也支持etcd,具体配置请参考数据路配置。3) 部署 DataWay。
第 2 步:修改分流规则
创建文件sinker.json
,填写以下信息,并将文件挂载到 DataWay 容器中。
匹配规则 ],对应于工作区的 OpenWay 地址和令牌"url": "?token=tkn_cb1a9a53fcb04436a4adab6435327fca" }," ],"url": "?token=tkn_c6e8ae1bbfa2489aba843cc56baf3c66" }," ],"url": "?token=tkn_1618f90ef13b482d9f682f30f7118d2f" }步骤三:修改DataKit配置1)修改datakit卸载环境变量的配置;
- 名称:env dataway 地址和秘密令牌值: -name: env sinker 全局客户密钥 指定 offload 的键值: namespace - name: env dataway enable sinker 启用 sinker 值:"true"2) 重新部署数据包。
只有 DataKit 工作区中的数据具有 DataKit 的命名空间。
只有 utils 工作区中将命名空间作为 utils 的数据可用。
OBS工作空间中没有utils和datakit数据。
在这一点上,转移是成功的。
除了上述示例之外,您还可以利用 DataKit 内置的自定义键,这些键通常不会出现在收集的数据中,但 DataKit 可以使用这些键对数据进行分组。 如果需要对这些键维度进行分类,可以将它们添加到全局自定义键列表中(默认情况下不配置这些键)。 我们可以使用一些内置的自定义键来实现数据卸载。 具体流量分配规则请参见内置自定义密钥流量分配。