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实例,禁止直接在控制台操作,避免配置不一致。
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包含错误码与错误信息 |