K8s 集群可观测性数据卸载最佳实践

小夏 科学 更新 2024-02-03

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

在传统的主机环境中,在不同主机上部署 datakit 时,通过配置不同的工作空间 token 可以很容易地实现这一点,但在使用 daemonset 部署的 k8s 环境中,同一个 daemonset 无法灵活地配置多套 datakit,配置变更时需要重启 datakit,datakit 达到一定规模后的影响非常大。

因此,Observation Cloud 提供的 Dataway Sinker 功能是解决上述问题的最佳方法。

从上图可以看出,该解决方案最重要的部分是数据标签管理。 数据卸载是否符合预期、准确和有用,取决于标签的正确使用和规划管理。 标签的管理和使用恰好是观测云平台的核心能力之一。

有关如何标记的更多信息,请参阅观测云中标记的最佳实践,此处不再赘述。

除此之外,会审还支持以下属性:

观测云内置了自定义键,例如,所有通用数据分类的类别,其值可以是对应数据分类的“名称”列(例如,时间序列是度量,对象是对象等)。

对象标签属性以及 K8S 集群的开箱即用属性,例如:namespacecontainer_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 可以使用这些键对数据进行分组。 如果需要对这些键维度进行分类,可以将它们添加到全局自定义键列表中(默认情况下不配置这些键)。 我们可以使用一些内置的自定义键来实现数据卸载。 具体流量分配规则请参见内置自定义密钥流量分配。

相似文章

    K8S 集群部署工具 Kubeadm 详解

    朋友们,您好。Kubeadm 是快速创建 Kubernetes 集群的最佳实践工具,我们只需要使用 kubeadm init 和 kubeadm join 命令即可完成 ks 集群的部署。kubeadm init 用于部署控制平面节点。kubeadm join 用于部署 Worker 节点并将它们加...

    Trivy 为 K8s 添加了 KBOM 漏洞扫描

    标准做法是扫描应用程序和 以查找漏洞。但为什么要止步于此呢?Aqua 希望为 Kubernetes 带来相同级别的安全性。Trivy 将 KBOM 漏洞扫描添加到 Ks 中,作者 Itay Shakury 是 Aqua Security 的开源副总裁,负责领导开源云原生安全解决方案的工程设计。Ita...

    K8s 容器调试高级技巧

    如果您在 Kubernetes 上运行软件,则需要调试在某个时候部署的软件的某些方面。对于 习 虚拟机 VMS 来说,一种自然而然的简单调试方法是连接到正在运行的 Pod 并对其进行解释 kubectl exec it podname c containername bash这通常有效,而且有效。但...

    如何使用 Helm 集成 Prometheus 和 Grafana 第 1 部分在 K8s 上

    在这个由三部分组成的系列中,您将了解 习 如何使用 Helm 在 Kubernetes 上集成 Prometheus 和 Grafana,以及如何在 Grafana 上创建简单的仪表板。Prometheus 和 Grafana 是 Kubernetes 上最流行的两个开源监控工具。了解 习 如何使用...

    如何使用 Helm 集成 Prometheus 和 Grafana 第 2 部分在 K8s 上

    在第 部分中,我们了解了 Prometheus 和 Grafana 是什么,以及使用这些工具的先决条件和好处。在本节中,你将继续学习如何安装 Helm 以及如何使用 Prometheus Helm 图表。Artifacthub 为 Helm Chart 提供公共和私有存储库。我们将使用这些 helm...