Amazon EKS和 Kubernetes 上 Container Insights 的快速入門設定 - Amazon CloudWatch

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

Amazon EKS和 Kubernetes 上 Container Insights 的快速入門設定

重要

如果您要在 Amazon EKS叢集上安裝 Container Insights,建議您使用 Amazon CloudWatch Observability EKS 附加元件進行安裝,而不是使用本節中的指示。此外,若要擷取加速運算網路,您必須使用 Amazon CloudWatch Observability EKS 附加元件。如需詳細資訊和指示,請參閱安裝 Amazon CloudWatch Observability EKS 附加元件

若要完成設定容器洞見,您可以遵循本節中的 quick start 說明。如果您要在 Amazon EKS叢集中安裝 ,並在 2023 年 11 月 6 日或之後使用本節中的指示,則可以在叢集EKS中為 Amazon 安裝具有增強可觀測性的 Container Insights。

重要

在完成本節中的步驟之前,您必須已驗證先決條件,包括IAM許可。如需詳細資訊,請參閱在 中驗證 Container Insights 的先決條件 CloudWatch

或者,您可以改為遵循下列兩節中的說明:設定 CloudWatch 代理程式以收集叢集指標將日誌傳送至 CloudWatch 日誌。這些區段提供 CloudWatch 代理程式如何與 Amazon EKS和 Kubernetes 搭配使用的更多組態詳細資訊,但需要您執行更多安裝步驟。

使用 Container Insights 的原始版本,收集的指標和擷取的指標會按自訂指標計費。使用 Container Insights 增強了 Amazon 的可觀測性EKS, Container Insights 指標和日誌會按每次觀察收取費用,而不是按儲存或日誌擷取的指標收取費用。如需 CloudWatch 定價的詳細資訊,請參閱 Amazon CloudWatch Pricing

注意

Amazon 現已推出 Fluent Bit 作為 Container Insights 的預設日誌解決方案,且效能大幅提升。我們建議您使用 Fluent Bit 而不是 Fluentd。

CloudWatch 代理程式運算子和 Fluent 位元的快速入門

Fluent Bit 有兩種組態:最佳化版本和提供更類似於 Fluentd 體驗的版本。Quick Start 組態使用最佳化版本。如需 Fluentd 相容組態的詳細資訊,請參閱「將 Fluent Bit 設定為 DaemonSet ,以將日誌傳送至 CloudWatch Logs」。

CloudWatch 代理程式運算子是安裝到 Amazon EKS叢集的額外容器。它以 OpenTelemetry Operator for Kubernetes 為模型。運算子會管理叢集中 Kubernetes 資源的生命週期。它會在 Amazon EKS叢集上安裝 CloudWatch Agent、DCGMExporter (NVIDIA) 和 AWS Neuron Monitor,並管理它們。Fluent Bit 和 CloudWatch Agent for Windows 會直接安裝到 Amazon EKS叢集,而不由運算子管理。

為了更安全且功能豐富的憑證授權機構解決方案, CloudWatch 代理程式運算子需要 cert-manager,這是廣泛採用的解決方案,可在 Kubernetes 中管理TLS憑證。使用 cert-manager 可簡化取得、更新、管理和使用這些憑證的程序。它可確保憑證有效且為最新版本,並嘗試在到期前的已設定時間續約憑證。cert-manager 也協助從各種支援的來源發行憑證,包括 AWS Certificate Manager Private Certificate Authority。

使用快速入門部署 Container Insights
  1. 如果尚未在叢集中安裝 cert-manager,請進行安裝。如需詳細資訊,請參閱 cert-manager 安裝

  2. 輸入下列 命令來安裝自訂資源定義 (CRD)。

    curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-custom-resource-definitions.yaml | kubectl apply --server-side -f -
  3. 輸入下列命令來安裝運算子。Replace (取代) my-cluster-name 使用 Amazon EKS或 Kubernetes 叢集的名稱,並取代 my-cluster-region 以及發佈日誌的區域名稱。我們建議您使用部署叢集的相同區域,以減少 AWS 傳出資料傳輸成本。

    ClusterName=my-cluster-name RegionName=my-cluster-region curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl apply -f -

    例如,若要在名為 MyCluster 的叢集上部署 Container Insights,並將日誌和指標發佈至美國西部 (奧勒岡),請輸入以下命令。

    ClusterName='MyCluster' RegionName='us-west-2' curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl apply -f -

從 Container Insights 遷移

如果您已在 Amazon EKS叢集中設定 Container Insights,且您想要遷移至具有 Amazon 增強可觀測性的 Container InsightsEKS,請參閱 升級到 Container Insights,為 Amazon 在 EKS中增強可觀測性 CloudWatch

刪除容器洞見

如果您想要在使用快速啟動設定之後移除 Container Insights,請輸入下列命令。

ClusterName=my-cluster-name RegionName=my-cluster-region curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl delete -f - curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-custom-resource-definitions.yaml | kubectl delete -f -