全部產品
Search
文件中心

Container Service for Kubernetes:收集系統外掛程式日誌

更新時間:Jun 19, 2024

系統外掛程式(Addon)使用Kubernetes資源(DaemonSet、Deployment等)實現叢集的儲存、網路等功能,這些資源部署於kube-system命名空間之下。本文介紹如何配置收集儲存、網路、Auto Scaling等主要系統外掛程式的日誌功能。

前提條件

  • 已安裝日誌組件logtail-ds。

    在建立叢集時,ACK預設選中日誌組件logtail-ds。如果您未安裝日誌組件logtail-ds,關於如何手動安裝的操作,請參見通過Log Service採集Kubernetes容器日誌

  • 確保日誌應用alibaba-log-controller版本不低於0.2.0.0-76648ee-aliyun。logcontroller

    如果alibaba-log-controller版本低,可直接升級logtail-ds組件。關於如何升級組件,請參見管理組件

步驟一:建立系統外掛程式的日誌設定檔

日誌採集配置針對ACK進行了自訂資源CRD擴充,您可以直接部署AliyunLogConfig的CRD配置,Log Controller會自動建立Log Service相關採集配置和報表資源。關於如何建立自訂資源,請參見管理自訂資源

根據以下樣本建立儲存、Terway網路、Flannel網路及Auto Scaling的AliyunLogConfig設定檔。

  • 儲存CSI外掛程式的日誌配置樣本:

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      #您的配置名稱在K8s叢集中必須是唯一的。
      name: k8s-csi-log
      namespace: kube-system
    spec:
      #用於上傳日誌的logstore名稱。
      logstore: k8s-csi-log
      #logtail配置詳細資料。
      logtailConfig:
        #Docker標準輸出的輸入類型為“plugin”。
        inputType: plugin
        #logtail配置名稱,應與[metadata.name]相同。
        configName: k8s-csi-log
        inputDetail:
          plugin:
            inputs:
              -
                #輸入類型。
                type: service_docker_stdout
                detail:
                  #收集stdout和stderr。
                  Stdout: true
                  Stderr: true
                  K8sNamespaceRegex: "^kube-system$"
                  K8sPodRegex: "^csi.*$"
  • Terway網路外掛程式的日誌配置樣本:

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      #您的配置名稱在K8s叢集中必須是唯一的。
      name: k8s-terway-log
      namespace: kube-system
    spec:
      #用於上傳日誌的logstore名稱。
      logstore: k8s-terway-log
      #logtail配置詳細資料。
      logtailConfig:
      #Docker標準輸出的輸入類型為“plugin”。
        inputType: plugin
        #logtail配置名稱,應與[metadata.name]相同。
        configName: k8s-terway-log
        inputDetail:
          plugin:
            inputs:
              -
                #輸入類型。
                type: service_docker_stdout
                detail:
                  #收集stdout和stderr。
                  Stdout: true
                  Stderr: true
                  K8sNamespaceRegex: "^kube-system$"
                  K8sPodRegex: "^terway-eniip.*$"
  • Flannel網路外掛程式的日誌配置樣本:

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      #您的配置名稱在K8s叢集中必須是唯一的。
      name: k8s-flannel-log
      namespace: kube-system
    spec:
      #用於上傳日誌的logstore名稱。
      logstore: k8s-flannel-log
      #logtail配置詳細資料。
      logtailConfig:
        #Docker標準輸出的輸入類型為“plugin”。
        inputType: plugin
        #logtail配置名稱,應與[metadata.name]相同。
        configName: k8s-flannel-log
        inputDetail:
          plugin:
            inputs:
              -
                #輸入類型。
                type: service_docker_stdout
                detail:
                  #收集stdout和stderr。
                  Stdout: true
                  Stderr: true
                  K8sNamespaceRegex: "^kube-system$"
                  K8sPodRegex: "^kube-flannel-ds.*$"
  • Auto Scaling外掛程式的日誌配置樣本:

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      #您的配置名稱在K8s叢集中必須是唯一的。
      name: k8s-cluster-autoscaler-log
      namespace: kube-system
    spec:
      #用於上傳日誌的logstore名稱。
      logstore: k8s-cluster-autoscaler-log
      #logtail配置詳細資料。
      logtailConfig:
        #Docker標準輸出的輸入類型為“plugin”。
        inputType: plugin
        #logtail配置名稱,應與[metadata.name]相同。
        configName: k8s-cluster-autoscaler-log
        inputDetail:
          plugin:
            inputs:
              -
                #輸入類型。
                type: service_docker_stdout
                detail:
                  #收集stdout和stderr。
                  Stdout: true
                  Stderr: true
                  K8sNamespaceRegex: "^kube-system$"
                  K8sPodRegex: "^cluster-autoscaler.*$"

步驟二:查看日誌

關於如何查看日誌,請參見步驟四:查看日誌