在 CloudWatch 中验证 Container Insights 的先决条件
在 Amazon EKS 或 Kubernetes 上安装 Container Insights 之前,请验证以下内容。无论您是使用 CloudWatch 代理还是 AWS Distro for OpenTelemetry 在 Amazon EKS 集群上设置 Container Insights,这些先决条件都适用。
-
在其中一个支持适用于 Amazon EKS 和 Kubernetes 的 Container Insights 的区域中,您具有正常工作的 Amazon EKS 集群或 Kubernetes 集群并附加了节点。有关支持的区域列表,请参阅Container Insights。
-
您已安装并正在运行
kubectl
。有关更多信息,请参阅 Amazon EKS 用户指南 中的安装kubectl
。 -
如果您使用在 AWS 上运行的 Kubernetes,而不是使用 Amazon EKS,则还需要满足以下先决条件:
-
确保您的 Kubernetes 集群已启用基于角色的访问控制 (RBAC)。有关更多信息,请参阅《Kubernetes 参考》中的 使用 RBAC 授权
。 -
您的 kubelet 已启用 Webhook 授权模式。有关更多信息,请参阅《Kubernetes 参考》中的 Kubelet 身份验证/授权
。
-
您还必须授予 IAM 权限,以使 Amazon EKS Worker 节点能够向 CloudWatch 发送指标和日志。有两种方式可执行此操作:
-
将策略附加到 Worker 节点的 IAM 角色。这同时适用于 Amazon EKS 集群和其他 Kubernetes 集群。
-
对集群的服务账户使用 IAM 角色,并将策略附加到此角色。这仅适用于 Amazon EKS 集群。
第一个选项授予 CloudWatch 对整个节点的权限,而对服务账户使用 IAM 角色仅授予 CloudWatch 对相应守护程序集 Pod 的访问权限。
将策略附加到 Worker 节点的 IAM 角色
按照以下步骤将策略附加到 Worker 节点的 IAM 角色。这同时适用于 Amazon EKS 外部的 Amazon EKS 集群和 Kubernetes 集群。
将所需的策略附加到 Worker 节点的 IAM 角色
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
选择其中的一个 Worker 节点实例,然后在描述中选择 IAM 角色。
-
在 IAM 角色页面上,选择 Attach policies(附加策略)。
-
在策略列表中,选中 CloudWatchAgentServerPolicy 旁边的复选框。如有必要,请使用搜索框查找该策略。
-
选择附加策略。
如果您在 Amazon EKS 外部运行 Kubernetes 集群,则可能无法将 IAM 角色附加到 Worker 节点。如果没有,您必须先将一个 IAM 角色附加到实例,然后按照前面步骤中所述添加策略。有关将角色附加到实例的更多信息,请参阅《Amazon EC2 用户指南》中的将 IAM 角色附加到实例。
如果您在 Amazon EKS 外部运行 Kubernetes 集群,并且希望在指标中收集 EBS 卷 ID,则必须向附加到该实例的 IAM 角色添加另一个策略。添加以下内容作为内联策略。有关更多信息,请参阅 IAM 用户指南中的添加和删除 IAM 身份权限。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:DescribeVolumes" ], "Resource": "*", "Effect": "Allow" } ] }
使用 IAM 服务账户角色
此方法仅适用于 Amazon EKS 集群。
使用 IAM 服务账户角色向 CloudWatch 授予权限
-
为集群上的服务账户启用 IAM 角色(如果尚未执行此操作)。有关更多信息,请参阅为集群上的服务账户启用 IAM 角色。
-
配置服务账户以使用 IAM 角色(如果尚未进行此配置)。有关更多信息,请参阅配置 Kubernetes 服务账户以代入 IAM 角色。
创建角色时,除了您为角色创建的策略外,还将 CloudWatchAgentServerPolicy IAM 策略附加到角色。此外,应在
amazon-cloudwatch
命名空间中创建链接至此角色的关联 Kubernetes 服务账户,在接下来的步骤中,CloudWatch 和 Fluent Bit 进程守护程序集将在其中部署 -
将 IAM 角色与集群中的服务账户相关联(如果尚未执行此操作)。有关更多信息,请参阅配置 Kubernetes 服务账户以代入 IAM 角色。