全部产品
Search
文档中心

日志服务:使用CR实例管理采集配置

更新时间:Oct 22, 2024

CRD(CustomResourceDefinition)允许用户定义自定义资源类型,日志服务利用CRD定义了自己的资源类型,您可以通过创建CR(CustomResource)实例来管理采集配置。本文主要介绍日志服务的两类CRD(AliyunPipelineConfig和AliyunLogConfig)的区别和优势。

背景信息

CRD全称为“CustomResourceDefinition”,是Kubernetes(k8s)的一种API对象,允许用户定义自定义资源类型。通过CRD,用户可以扩展Kubernetes原生的API,以满足特定的应用场景需求。CR即“CustomResource”,是基于CRD定义的资源类型创建的具体的实例。

日志服务定义了自己的CRD,并支持通过CR来管理Logtail采集配置。您需要连接Kubernetes集群,并额外使用Kubernetes鉴权。然后向kube-apiserver提交YAML配置文件来创建资源,从而创建相应的Logtail采集配置。

警告

通过CR创建的配置,在控制台上对其修改不会同步到CR中。因此,如需修改由CR创建的配置内容,只能修改CR实例,禁止直接在控制台操作,避免配置不一致。

通过CR管理Logtail采集配置的工作原理

image
  1. 日志服务通过Deployment部署了一个控制器alibaba-log-controller,该控制器负责监听 AliyunLogConfig 资源的变化。

  2. 当用户通过kubectl或其他Kubernetes管理工具创建、更新或删除AliyunLogConfig资源时,alibaba-log-controller会监测到这些变化,然后根据资源配置文件中的内容和服务端Logtail采集配置的状态,自动向日志服务提交各种请求,如采集配置变更等。

CRD类型

警告

使用AliyunPipelineConfig,需要日志组件版本最低为0.5.1。

为了便于通过云原生方式管理Logtail采集配置,日志服务定义了两类CRD,它们的能力与区别见下表:

类型

AliyunPipelineConfig(推荐使用)

AliyunLogConfig

ApiGroup

telemetry.alibabacloud.com/v1alpha1

log.alibabacloud.com/v1alpha1

CRD资源名

ClusterAliyunPipelineConfig

AliyunLogConfig

作用域

集群

命名空间

采集配置格式

基本等价于日志服务API中的LogtailPipelineConfig

基本等价于日志服务API中的LogtailConfig

跨地域能力

支持

支持

跨账号能力

支持

支持

Webhook校验参数

支持

不支持

配置冲突检测

支持

不支持

配置难度

较低

较高

配置可观测性

Status包含错误详情、更新时间、上次应用成功配置、上次应用成功时间等信息

Status包含错误码与错误信息