全部產品
Search
文件中心

Container Service for Kubernetes:將事件中心接入註冊叢集

更新時間:Jul 09, 2025

註冊叢集接入事件中心功能可以記錄Kubernetes叢集的狀態變更,包括配置Pod及組件異常等。Kubernetes事件中心功能即時匯聚Kubernetes中的所有事件並提供儲存、查詢、分析、可視化、警示等能力。本文介紹如何通過Container ServiceKubernetes版中的應用將事件中心接入至註冊的Kubernetes叢集。

前提條件

背景資訊

Kubernetes的架構設計基於狀態機器,不同的狀態之間進行轉換會產生相應的事件,正常的狀態之間轉換會產生Normal等級的事件,正常狀態與異常狀態之間的轉換會產生Warning等級的事件。

ACK提供開箱即用的容器情境事件監控方案,通過ACK維護的NPD(node-problem-detector)以及包含在NPD中的kube-eventer提供容器事件監控能力。事件監控關係圖

  • NPD(node-problem-detector)是Kubernetes節點診斷的工具,可以將節點的異常,例如Docker Engine Hang、Linux Kernel Hang、網路出網異常、檔案描述符異常轉換為Node的事件,結合kube-eventer可以實現節時間點事件警示的閉環。更多資訊,請參見NPD

  • kube-eventer是ACK維護的開源Kubernetes事件離線工具,可以將叢集的事件離線到DingTalk、SLS、EventBridge等系統,並提供不同等級的過濾條件,實現事件的即時採集、定向警示、非同步歸檔。更多資訊,請參見kube-eventer

步驟一:為事件中心組件配置RAM許可權

通過onectl配置

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

  2. 執行以下命令,為事件中心組件配置RAM許可權。

    onectl ram-user grant --addon ack-node-problem-detector

    預期輸出:

    Ram policy ack-one-registered-cluster-policy-ack-node-problem-detector granted to ram user ack-one-user-ce313528c3 successfully.

通過控制台配置

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

  1. 建立RAM使用者

  2. 建立自訂權限原則

    展開查看事件中心所需的自訂權限原則內容

    {
        "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使用者授權

    可選擇自訂權限原則或AliyunECIFullAccess策略為RAM使用者授權。

  4. 為RAM使用者建立AccessKey

    警告

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

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

    安裝事件中心相關組件時將自動引用此AccessKey訪問對應的雲端服務資源。

    執行以下命令建立事件中心使用的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資訊。

步驟二:安裝事件中心組件

通過onectl安裝

執行以下命令,安裝事件中心組件。

onectl addon install ack-node-problem-detector

預期輸出:

Addon ack-node-problem-detector, version xxx installed.

通過控制台安裝

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

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 事件中心

  3. 可選:若提示未安裝組件ack-node-problem-detector,請單擊建立事件中心

  4. 事件中心頁面,單擊事件總覽(事件中心)頁簽,查看Kubernetes事件中心相關資訊。

    您可以查看Kubernetes事件的總覽及詳情、Pod生命週期,還可以進行自訂查詢及警示配置。

執行結果

配置成功後,即可使用事件中心功能。更多資訊,請參見建立並使用K8s事件中心

將事件中心接入註冊的Kubernetes叢集後,即可使用K8s事件中心,包括查看事件總覽、查詢事件詳情、查看Pod生命週期、配置警示和自訂查詢等操作。