使用CR實例管理采集配置
CRD(CustomResourceDefinition)允許用戶定義自定義資源類型,日志服務(wù)利用CRD定義了自己的資源類型,您可以通過創(chuàng)建CR(CustomResource)實例來管理采集配置。本文主要介紹日志服務(wù)的兩類CRD(AliyunPipelineConfig和AliyunLogConfig)的區(qū)別和優(yōu)勢。
背景信息
CRD全稱為“CustomResourceDefinition”,是Kubernetes(k8s)的一種API對象,允許用戶定義自定義資源類型。通過CRD,用戶可以擴(kuò)展Kubernetes原生的API,以滿足特定的應(yīng)用場景需求。CR即“CustomResource”,是基于CRD定義的資源類型創(chuàng)建的具體的實例。
日志服務(wù)定義了自己的CRD,并支持通過CR來管理Logtail采集配置。您需要連接Kubernetes集群,并額外使用Kubernetes鑒權(quán)。然后向kube-apiserver提交YAML配置文件來創(chuàng)建資源,從而創(chuàng)建相應(yīng)的Logtail采集配置。
通過CR創(chuàng)建的配置,在控制臺上對其修改不會同步到CR中。因此,如需修改由CR創(chuàng)建的配置內(nèi)容,只能修改CR實例,禁止直接在控制臺操作,避免配置不一致。
日志服務(wù)通過
Deployment
部署了一個控制器alibaba-log-controller
,該控制器負(fù)責(zé)監(jiān)聽AliyunLogConfig
資源的變化。當(dāng)用戶通過kubectl或其他Kubernetes管理工具創(chuàng)建、更新或刪除
AliyunLogConfig
資源時,alibaba-log-controller
會監(jiān)測到這些變化,然后根據(jù)資源配置文件中的內(nèi)容和服務(wù)端Logtail采集配置的狀態(tài),自動向日志服務(wù)提交各種請求,如采集配置變更等。
CRD類型
使用AliyunPipelineConfig,需要日志組件版本最低為0.5.1。
為了便于通過云原生方式管理Logtail采集配置,日志服務(wù)定義了兩類CRD,它們的能力與區(qū)別見下表:
類型 | AliyunPipelineConfig(推薦使用) | AliyunLogConfig |
ApiGroup | telemetry.alibabacloud.com/v1alpha1 | log.alibabacloud.com/v1alpha1 |
CRD資源名 | ClusterAliyunPipelineConfig | AliyunLogConfig |
作用域 | 集群 | 命名空間 |
采集配置格式 | 基本等價于日志服務(wù)API中的LogtailPipelineConfig | 基本等價于日志服務(wù)API中的LogtailConfig |
跨地域能力 | 支持 | 支持 |
跨賬號能力 | 支持 | 支持 |
Webhook校驗參數(shù) | 支持 | 不支持 |
配置沖突檢測 | 支持 | 不支持 |
配置難度 | 較低 | 較高 |
配置可觀測性 | Status包含錯誤詳情、更新時間、上次應(yīng)用成功配置、上次應(yīng)用成功時間等信息 | Status包含錯誤碼與錯誤信息 |