Amazon EKS 控制平面記錄 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon EKS 控制平面記錄

Amazon EKS 控制平面日誌記錄可將稽核和診斷日誌直接從 Amazon EKS 控制平面提供到您帳戶中的 CloudWatch 日誌。這些日誌可讓您輕鬆執行叢集並確保叢集的安全。您可以選擇所需的確切日誌類型,並將日誌作為日誌串流傳送到中每個 Amazon EKS 叢集的 CloudWatch群組。您可以使用 CloudWatch 訂閱過濾器對日誌進行實時分析,或將其轉發到其他服務(日誌將以 Base64 編碼並以 gzip 格式壓縮)。如需詳細資訊,請參閱 Amazon CloudWatch 記錄

您可以選擇要為每個新的或現有的 Amazon EKS 叢集啟用哪些日誌類型,以開始使用 Amazon EKS 控制平面記錄。您可以使用 AWS Management Console、 AWS CLI (版本或更高版本1.16.139) 或透過 Amazon EKS API 針對每個叢集啟用或停用每個記錄類型。啟用後,日誌會自動從 Amazon EKS 叢集傳送到相同帳戶中的 CloudWatch 日誌。

當您使用 Amazon EKS 控制平面記錄時,必須為您執行的每個叢集支付標準 Amazon EKS 定價。對於從叢集傳送至 CloudWatch CloudWatch 記錄的任何記錄,需支付標準記錄資料擷取和儲存費用。您也需要為叢集中佈建的任何 AWS 資源 (例如 Amazon EC2 執行個體或 Amazon EBS 磁碟區) 付費。

以下叢集控制平面日誌類型可供使用。每個日誌類型皆對應 Kubernetes 控制平面的某個元件。如需進一步了解這些元件的詳細資訊,請參閱 Kubernetes 文件中的 Kubernetes 元件

API 伺服器 (api)

叢集的 API 伺服器是公開 Kubernetes API 的控制平面元件。如果您在啟動叢集時或之後隨即啟用 API 伺服器日誌,則日誌中會包含用於啟動 API 伺服器的 API 伺服器旗標。如需詳細資訊,請參閱 Kubernetes 文件中的 kube-apiserver 以及稽核政策

稽核 (audit)

Kubernetes 稽核日誌可提供對叢集產生影響的個別使用者、系統管理員或系統元件的記錄。如需詳細資訊,請參閱 Kubernetes 文件中的稽核

驗證器 (authenticator)

驗證器日誌是 Amazon EKS 獨有的。這些日誌代表 Amazon EKS 使用 IAM 憑證進行 Kubernetes 角色型存取控制 (RBAC) 身分驗證的控制平面元件。如需詳細資訊,請參閱 叢集管理

控制器管理員 (controllerManager)

控制器管理員負責管理 Kubernetes 隨附的核心控制迴圈。如需詳細資訊,請參閱Kubernetes文件kube-controller-manager中的。

排程器 (scheduler)

排程器元件會管理在叢集中執行 Pods 的時間和位置。如需詳細資訊,請參閱 Kubernetes 文件中的 kube-scheduler

啟用和停用控制平面日誌

根據預設,叢集控制平面記錄檔不會傳送至 CloudWatch 記錄檔。您必須個別啟用每種記錄類型,才能傳送叢集的記錄。 CloudWatch 記錄擷取、封存儲存和資料掃描速率適用於已啟用的控制平面記錄檔。如需詳細資訊,請參閱CloudWatch 定價

若要更新控制平面日誌記錄組態,Amazon EKS 需要每個子網路中最多五個可用的 IP 地址。當您啟用日誌類型時,將會以日誌詳細資訊等級 2 傳送日誌。

AWS Management Console
若要啟用或停用控制平面記錄 AWS Management Console
  1. 在以下網址開啟 Amazon EKS 主控台:https://console.aws.amazon.com/eks/home#/clusters

  2. 選擇叢集名稱以顯示您叢集的資訊。

  3. 選擇可觀測性索引標籤。

  4. 控制平面日誌記錄區段中,選擇管理日誌記錄

  5. 對於每個日誌類型,選擇其日誌類型為開啟或關閉。根據預設,系統會關閉每個日誌類型。

  6. 選擇 Save changes (儲存變更) 以完成操作。

AWS CLI
若要啟用或停用控制平面記錄 AWS CLI
  1. 使用以下命令檢查您的 AWS CLI 版本。

    aws --version

    如果您的 AWS CLI 版本早於1.16.139,則必須先更新至最新版本。若要安裝或升級 AWS CLI,請參閱《 AWS Command Line Interface使用者指南》中的安裝AWS Command Line Interface

  2. 使用下列 AWS CLI 命令更新叢集的控制平面記錄匯出組態。使用叢集名稱取代 my-cluster 並指定所需的端點存取值。

    注意

    下列命令會將所有可用的記錄檔類型傳送至 CloudWatch 記錄檔。

    aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}'

    範例輸出如下。

    {
        "update": {
            "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9",
            "status": "InProgress",
            "type": "LoggingUpdate",
            "params": [
                {
                    "type": "ClusterLogging",
                    "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}"
                }
            ],
            "createdAt": 1553271814.684,
            "errors": []
        }
    }
  3. 使用以下命令以及上個命令傳回的叢集名稱和更新 ID,監控日誌組態更新的狀態。當狀態出現 Successful 時,您的更新就完成了。

    aws eks describe-update \ --region region-code\ --name my-cluster \ --update-id 883405c8-65c6-4758-8cee-2a7c1340a6d9

    範例輸出如下。

    {
        "update": {
            "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9",
            "status": "Successful",
            "type": "LoggingUpdate",
            "params": [
                {
                    "type": "ClusterLogging",
                    "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}"
                }
            ],
            "createdAt": 1553271814.684,
            "errors": []
        }
    }

檢視叢集控制平面日誌

為 Amazon EKS 叢集啟用任何控制平面日誌類型後,您可以在主控 CloudWatch 台上檢視它們。

若要進一步了解如何檢視、分析和管理日誌 CloudWatch,請參閱 Amazon CloudWatch 日誌使用者指南

在 CloudWatch 主控台上檢視叢集控制平面記錄
  1. 開啟 CloudWatch 主控台。此連結會開啟主控台及顯示目前可用的日誌群組,並以 /aws/eks 字首進行篩選。

  2. 選擇您要檢視日誌的叢集。日誌群組的名稱格式是 /aws/eks/my-cluster/cluster

  3. 選擇要檢視的日誌串流。以下清單說明每個日誌類型的日誌串流名稱格式。

    注意

    隨著日誌串流資料增加,日誌串流名稱將會輪換。當特定日誌類型有多個日誌串流時,您可以使用最新的 Last Event Time (上次事件時間) 來尋找日誌串流名稱,以檢視最新的日誌串流。

    • Kubernetes API 伺服器元件記錄 (api)kube-apiserver-1234567890abcdef01234567890abcde

    • 稽核 (audit)kube-apiserver-audit-1234567890abcdef01234567890abcde

    • 驗證器 (authenticator)authenticator-1234567890abcdef01234567890abcde

    • 控制器管理員 (controllerManager)kube-controller-manager-1234567890abcdef01234567890abcde

    • 排程器 (scheduler)kube-scheduler-1234567890abcdef01234567890abcde

  4. 查看日誌串流事件。

    例如,在檢視 kube-apiserver-1234567890abcdef01234567890abcde 的頂端時,您應該會看到叢集的初始 API 伺服器旗標。

    注意

    如果您未在日誌串流的開頭看到 API 伺服器日誌,則 API 伺服器日誌檔案可能已在伺服器上啟用 API 伺服器記錄之前在伺服器上輪換。在啟用 API 伺服器記錄之前旋轉的任何記錄檔都無法匯出至 CloudWatch。

    不過,您可以使用相同的 Kubernetes 版本建立新的叢集,並在建立叢集時啟用 API 伺服器記錄。使用相同平台版本的叢集已啟用相同的旗標,因此您的旗標應符合新叢集的旗標。在中檢視完新叢集的旗標後 CloudWatch,您可以刪除新叢集。