全部產品
Search
文件中心

Container Service for Kubernetes:將Log Service接入註冊叢集

更新時間:Aug 28, 2026

註冊叢集接入Log Service可以為分布在各處的Kubernetes叢集提供統一的管理方式。本文介紹如何通過阿里雲Container ServiceKubernetes版中的應用將Log Service接入註冊叢集。

前提條件

步驟一:為Log Service組件配置RAM許可權

通過onectl配置

  1. 在本地安裝配置onectl。具體操作,請參見通過onectl管理註冊叢集

  2. 執行以下命令,為Log Service組件配置RAM許可權。

    onectl ram-user grant --addon logtail-ds

    預期輸出:

    Ram policy ack-one-registered-cluster-policy-logtail-ds granted to ram user ack-one-user-ce313528c3 successfully.

通過控制台配置

在註冊叢集中安裝組件之前,您需要在接入叢集中設定AccessKey用來訪問雲端服務的許可權。設定AccessKey之前,您需要建立RAM使用者並為其添加訪問相關雲資源的許可權。

  1. 建立RAM使用者

  2. 建立自訂權限原則,策略內容如下。

    展開查看Logtail組件需要的權限原則資訊

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "log:CreateProject",
                    "log:GetProject",
                    "log:DeleteProject",
                    "log:CreateLogStore",
                    "log:GetLogStore",
                    "log:UpdateLogStore",
                    "log:DeleteLogStore",
                    "log:CreateConfig",
                    "log:UpdateConfig",
                    "log:GetConfig",
                    "log:DeleteConfig",
                    "log:CreateMachineGroup",
                    "log:UpdateMachineGroup",
                    "log:GetMachineGroup",
                    "log:DeleteMachineGroup",
                    "log:ApplyConfigToGroup",
                    "log:GetAppliedMachineGroups",
                    "log:GetAppliedConfigs",
                    "log:RemoveConfigFromMachineGroup",
                    "log:CreateIndex",
                    "log:GetIndex",
                    "log:UpdateIndex",
                    "log:DeleteIndex",
                    "log:CreateSavedSearch",
                    "log:GetSavedSearch",
                    "log:UpdateSavedSearch",
                    "log:DeleteSavedSearch",
                    "log:CreateDashboard",
                    "log:GetDashboard",
                    "log:UpdateDashboard",
                    "log:DeleteDashboard",
                    "log:CreateJob",
                    "log:GetJob",
                    "log:DeleteJob",
                    "log:UpdateJob",
                    "log:PostLogStoreLogs",
                    "log:CreateSortedSubStore",
                    "log:GetSortedSubStore",
                    "log:ListSortedSubStore",
                    "log:UpdateSortedSubStore",
                    "log:DeleteSortedSubStore",
                    "log:CreateApp",
                    "log:UpdateApp",
                    "log:GetApp",
                    "log:DeleteApp",
                    "cs:DescribeTemplates",
                    "cs:DescribeTemplateAttribute"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            }
        ]
    }
  3. 管理RAM使用者的許可權

  4. 為RAM使用者建立AccessKey

    警告

    建議您參見AccessKey網路訪問限制策略配置網路原則,將AccessKey調用來源控制在可信的網路環境內,提升AccessKey的安全性。

  5. 使用AccessKey在註冊叢集中建立名為alibaba-addon-secret的Secret資源。

    執行以下命令建立Logtail組件使用的Secret。

    kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'
    說明

    <your AccessKey ID><your AccessKey Secret>為上一步擷取的AccessKey資訊。

步驟二:安裝logtail-ds組件

通過onectl安裝

執行以下命令,安裝logtail-ds組件。

onectl addon install logtail-ds

預期輸出:

Addon logtail-ds, version **** installed.

通過控制台安裝

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理

  3. 組件管理頁面,單擊日誌與監控頁簽,找到logtail-ds組件,在卡片右下方單擊安裝

  4. 提示對話方塊單擊確定

(可選)步驟三:配置採集全域所有Pod的日誌輸出

文本日誌

如需配置全域Pod的文本日誌,您需要通過kubectl串連註冊叢集後,部署如下配置內容,採集全域所有Pod的文本日誌。

apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
  name: test-file                  # 資源名,在當前Kubernetes叢集內唯一。
spec:
  project: k8s-log-c326bc86****    # 可選配置,Project名稱,可自訂,推薦使用[k8s-log-叢集ID]命名。
  logstore: test-file              # 必選配置,Logstore名稱,如果不存在,Log Service會自動建立。
  logtailConfig:                   # Logtail配置。
    inputType: file                # 採集的資料來源類型,file表示文本日誌,plugin表示標準輸出。
    configName: test-file          # Logtail配置的名稱,必須與資源名(metadata.name)相同 。
    inputDetail:                   # Logtail配置的詳細資料。
      logType: common_reg_log      # 通過極簡模式採集文本日誌。
      logPath: /log/               # 記錄檔所在路徑。
      filePattern: "*.log"         # 記錄檔的名稱,支援萬用字元星號(*)和半形問號(?),例如log_*.log。
      dockerFile: true             # 採集容器內的檔案,dockerFile設定為true。
      advanced:                    # 設定容器過濾條件。
        k8s:
          K8sNamespaceRegex: ^(default)$
          K8sPodRegex: '^(nginx-log-demo.*)$'
          K8sContainerRegex: ^(nginx-log-demo-0)$
          IncludeK8sLabel:
            job-name: "^(nginx-log-demo.*)$"

更多詳細的參數說明,請參見Logtail配置(舊版)

標準輸出

如需配置全域Pod的標準輸出,您需要通過kubectl串連註冊叢集後,部署如下配置內容,採集全域所有Pod的標準輸出。成功部署後,將會自動產生名為stdout-logstore的Logstore並將日誌採集進去。

apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
  # your config name, must be unique in you k8s cluster.
  name: stdout-collector
spec:
  # logstore name to upload log.
  logstore: stdout-logstore
  # logtail config detail
  logtailConfig:
    # docker stdout's input type is 'plugin'.
    inputType: plugin
    # logtail config name, should be same with [metadata.name].
    configName: stdout-collector
    inputDetail:
      plugin:
        inputs:
          -
            type: service_docker_stdout
            detail:
              # collect stdout and stderr
              Stdout: true
              Stderr: true
              # collect all container's stdout except containers with "COLLECT_STDOUT_FLAG:false" in docker env config.

步驟四:配置Log Service