Amazon EKS 上的容器洞察 AccessDeniedException

Container Insights on Amazon EKS AccessDeniedException

我正在尝试将 Container Insight 添加到我的 EKS 集群,但 运行 在部署时遇到了一些问题。根据我的日志,我得到以下信息:

[error] [output:cloudwatch_logs:cloudwatch_logs.2] CreateLogGroup API responded with error='AccessDeniedException'
[error] [output:cloudwatch_logs:cloudwatch_logs.2] Failed to create log group 

奇怪的是,它假设的角色似乎与在我的 EC2 工作节点中找到的角色相同,而不是我创建的服务帐户的角色。我正在创建服务帐户,并且可以使用以下命令在 AWS 中成功查看它:

eksctl create iamserviceaccount --region ${env:AWS_DEFAULT_REGION} --name cloudwatch-agent --namespace amazon-cloudwatch --cluster ${env:CLUSTER_NAME} --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy --override-existing-serviceaccounts --approve

尽管服务帐户已成功创建,但我仍然收到 AccessDeniedException。

我发现的一件事是,当我手动将 CloudWatchAgentServerPolicy 添加到我的工作节点时,日志工作正常,但这不是我想要的实现,而是希望有一种自动添加服务帐户而不是触摸的方式如果可能,工作节点直接。我遵循的步骤可以在 this documentation.

的底部找到

非常感谢!

任何 运行 解决此问题的人:在 quickstart yaml 中,有一个必须从该文件中删除并手动创建的流利位服务帐户。对我来说,我使用以下命令创建了它:

eksctl create iamserviceaccount --region ${env:AWS_DEFAULT_REGION} --name fluent-bit --namespace amazon-cloudwatch --cluster ${env:CLUSTER_NAME} --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy --override-existing-serviceaccounts --approve

根据 运行 此命令并从 yaml 中删除 fluent-bit 服务帐户,删除并重新应用您的所有 amazon-cloudwatch 命名空间项目,它应该可以正常工作。