CRD(CustomResourceDefinition)允許使用者定義自訂資源類型,Log Service利用CRD定義了自己的資源類型,您可以通過建立CR(CustomResource)執行個體來管理採集配置。本文主要介紹Log Service的兩類CRD(AliyunPipelineConfig和AliyunLogConfig)的區別和優勢。
背景資訊
CRD全稱為“CustomResourceDefinition”,是Kubernetes(k8s)的一種API對象,允許使用者定義自訂資源類型。通過CRD,使用者可以擴充Kubernetes原生的API,以滿足特定的應用情境需求。CR即“CustomResource”,是基於CRD定義的資源類型建立的具體的執行個體。
Log Service定義了自己的CRD,並支援通過CR來管理Logtail採集配置。您需要串連Kubernetes叢集,並額外使用Kubernetes鑒權。然後向kube-apiserver提交YAML設定檔來建立資源,從而建立相應的Logtail採集配置。
通過CR建立的配置,在控制台上對其修改不會同步到CR中。因此,如需修改由CR建立的配置內容,只能修改CR執行個體,禁止直接在控制台操作,避免配置不一致。
CRD類型
使用AliyunPipelineConfig,需要日誌組件版本最低為0.5.1。
為了便於通過雲原生方式管理Logtail採集配置,Log Service定義了兩類CRD,它們的能力與區別見下表:
類型 | AliyunPipelineConfig(推薦使用) | AliyunLogConfig |
ApiGroup | telemetry.alibabacloud.com/v1alpha1 | log.alibabacloud.com/v1alpha1 |
CRD資源名 | ClusterAliyunPipelineConfig | AliyunLogConfig |
範圍 | 叢集 | 命名空間 |
採集配置格式 | 基本等價於Log ServiceAPI中的LogtailPipelineConfig | 基本等價於Log ServiceAPI中的LogtailConfig |
跨地區能力 | 支援 | 支援 |
跨帳號能力 | 支援 | 支援 |
Webhook校正參數 | 支援 | 不支援 |
配置衝突檢測 | 支援 | 不支援 |
配置難度 | 較低 | 較高 |
配置可觀測性 | Status包含錯誤詳情、更新時間、上次應用成功配置、上次應用成功時間等資訊 | Status包含錯誤碼與錯誤資訊 |