本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EKS 和 Kubernetes 上 Container Insights 的 Quick Start 設定
重要
如果您要在 Amazon EKS 叢集上安裝 Container Insights,建議您使用 Amazon CloudWatch 可觀測性 EKS 附加元件進行安裝,而不是使用本節中的指示。此外,若要擷取加速運算網路,您必須使用 Amazon CloudWatch 可觀測性 EKS 附加元件。如需詳細資訊和指示,請參閱Amazon CloudWatch 可觀測性 EKS 附加元件的快速入門。
若要完成設定容器洞見,您可以遵循本節中的 quick start 說明。如果您要在 Amazon EKS 叢集中進行安裝,並且在 2023 年 11 月 6 日或之後使用本節中的指示,則您可在叢集中安裝 Container Insights 搭配 Amazon EKS 的增強可觀測性。
重要
在完成本節中的步驟前,您必須先驗證包括 IAM 許可在內的先決條件。如需詳細資訊,請參閱在 CloudWatch 中驗證 Container Insights 的先決條件。
或者,您可以改為遵循下列兩節中的說明:設定 CloudWatch 代理程式以收集叢集指標 和 將日誌傳送至 CloudWatch Logs。這兩節提供更多 CloudWatch 代理程式搭配 Amazon EKS 及 Kubernetes 運作方式的組態詳細資訊,但需要您執行更多安裝步驟。
使用 Container Insights 的原始版本,收集的指標和擷取的指標會按自訂指標計費。使用 Container Insights 搭配 Amazon EKS 的增強可觀測性,Container Insights 指標和日誌會按觀測,而不是存放或擷取的指標計費。如需 CloudWatch 定價的詳細資訊,請參閱 Amazon CloudWatch 定價
注意
Amazon 現已推出 Fluent Bit 作為 Container Insights 的預設日誌解決方案,且效能大幅提升。我們建議您使用 Fluent Bit 而不是 Fluentd。
CloudWatch 代理程式運算子和 Fluent Bit 的快速入門
Fluent Bit 有兩種組態:最佳化版本和提供更類似於 Fluentd 體驗的版本。Quick Start 組態使用最佳化版本。如需 Fluentd 相容組態的詳細資訊,請參閱「將 Fluent Bit 設定為 DaemonSet 以將日誌傳送至 CloudWatch Logs」。
CloudWatch 代理程式運算子是安裝到 Amazon EKS 叢集的額外容器。它以適用於 Kubernetes 的 OpenTelemetry Operator 為基礎進行建模。運算子會管理叢集中 Kubernetes 資源的生命週期。它會在 Amazon EKS 叢集上安裝 CloudWatch Agent、DCGM Exporter (NVIDIA) 和 AWS Neuron Monitor,並進行管理。Fluent Bit 和適用於 Windows 的 CloudWatch Agent 會直接安裝到 Amazon EKS 叢集,而無須操作員管理它們。
為了提供更安全且功能豐富的憑證授權機構解決方案,CloudWatch 代理程式運算子需要 cert-manager,這是廣泛採用的解決方案,可在 Kubernetes 中進行 TLS 憑證管理。使用 cert-manager 可簡化取得、續約、管理和使用這些憑證的程序。它可確保憑證有效且為最新版本,並在到期前嘗試在設定的時間內續約憑證。cert-manager 也協助從各種支援的來源發行憑證,包括 AWS Certificate Manager Private Certificate Authority。
使用快速入門部署 Container Insights
如果尚未在叢集中安裝 cert-manager,請進行安裝。如需詳細資訊,請參閱 cert-manager 安裝
。 輸入下列 命令來安裝自訂資源定義 (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 -
輸入下列命令來安裝 運算子。將
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 EKS 增強可觀測性的 Container Insights,請參閱 升級至 Container Insights,增強 CloudWatch 中 Amazon EKS 的可觀測性
刪除容器洞見
如果您想要在使用快速入門設定之後移除 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 -