阿里云 ACK 接入观测云

简介

容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。2021 年成为国内唯一连续三年入选 Gartner 公共云容器报告的产品,2022 年国内唯一进入 Forrester 领导者象限。其整合了阿里云虚拟化、存储、网络和安全能力,助力企业高效运行云端 Kubernetes 容器化应用。

观测云支持 ACK 集群的接入,下面是入门接入的具体步骤。

前置条件

安装 ACK,本次使用版本 1.24.6-aliyun.1 。

注册「观测云账号」。

操作步骤

1 配置 yaml 文件

1.1 下载 datakit.yaml

登录「观测云」,点击「集成」模块,再点击左上角「DataKit」,选择「Kubernetes」,下载 datakit.yaml。本次部署的是 datakit 1.4.19 。

1.2 替换 Token

登录「观测云」,进入「管理」模块,在「基本设置」里面复制 token,替换 datakit.yaml 文件中的 ENV_DATAWAY 环境变量的 value 值中的 。

1.3 增加全局 Tag

针对一个工作空间接入多个 Kubernetes 集群指标,观测云提供了使用全局 Tag 的方式来进行区分。

当集群中只有一个采集对象,比如采集kubernetes API Server指标,集群中 DataKit 的数量会大于一个。为了避免指标采集重复,DataKit 开启了选举功能,这个时候区分集群的方式是增加

ENV_GLOBAL_ELECTION_TAGS;而针对非选举类的指标采集,比如为 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=aliyun-ack

根据上面的说明,下面修改 yaml 文件。

在 datakit.yaml 文件中的 ENV_GLOBAL_TAGS 环境变量值最后增加 cluster_name_k8s=aliyun-ack;

再增加环境变量 ENV_GLOBAL_ELECTION_TAGS,这样测试环境的集群就是 aliyun-ack;

增加环境变量 ENV_NAMESPACE 值是 aliyun-ack。

 

2 部署 DataKit

修改完成 yaml 文件后,下面开始部署 DataKit。

(1)登录阿里云容器服务管理控制台。

(2)在控制台左侧导航栏中,单击「集群」。

(3)在「集群列表」页面中,单击目标集群名称或者目标集群右侧「操作」列下的「详情」。

 

 

(4)在集群管理页左侧导航栏单击「工作负载」 - 「自定义资源」,然后在右侧页面单击「使用 YAML 创建」。

选择相应的命名空间。选择所有名称空间。

在示例模板中,选择自定义。把 yaml 的内容贴入模板中, 点击「创建」。

 

 在守护进程集下面可以查看到 DataKit 运行情况。

 

 

3 卸载 DataKit

DataKit 部署默认使用了 datakit 命名空间,卸载只需要删除守护进程集中的 datakit、datakit 命名空间下的资源及名为 datakit 的 ClusterRoleBinding。卸载的方式比较多,这里提供一种通过阿里云容器服务管理控制台卸载的方式。

3.1 删除 DaemonSet

在阿里云的容器管理控制台进入「工作负载」 - 「守护进程集」,找到 datakit,点击右边的「删除」。

 

 

3.2 删除命名空间

进入「节点管理」- 「命名空间与配额」,找到 datakit,点击右边的「删除」。

 

 

3.3 删除 Cluster Role

进入 「安全管理」 - 「角色」,在 Cluster Role 下面找到 datakit,点击右边的「删除」。

 

 

3.4 异常处理

如果在下次部署的时候提示如下错误,是因为阿里云控制台显示删除了,实际资源还存在的情况。

 

 

这时只需要把 datakit.yaml 文件中的如下部分删除即可重新部署。

 1 apiVersion:rbac.authorization.k8s.io/v1
 3 kind:ClusterRoleBinding
 5 metadata:
 7 name:datakit
 9 roleRef:
11 apiGroup:rbac.authorization.k8s.io
13 kind:ClusterRole
15 name:datakit
17 subjects:
19 -kind: ServiceAccount
21 name:datakit    
23 namespace: datakit

 

或者使用命令把 ClusterRoleBinding 删除,再部署 DataKit。

kubectldeleteclusterrolebindings datakit

 

posted @ 2022-11-14 17:25  编程小专家  阅读(105)  评论(0编辑  收藏  举报