Amazon EKS AccessDeniedException 上的容器见解

问题描述 投票:0回答:2

我正在尝试将 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 添加到我的工作节点时,日志工作正常,但这不是我想要的实现,而是宁愿采用自动方式添加服务帐户而不直接接触工作节点如果可能的话。我遵循的步骤可以在本文档的底部找到。

非常感谢!

amazon-web-services kubernetes amazon-cloudwatch amazon-eks aws-cloudwatch-log-insights
2个回答
13
投票

对于遇到此问题的任何人:在快速入门 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 命名空间项目,它应该可以正常工作。


0
投票

为我将

CloudWatchAgentServerPolicy
添加到节点角色修复中。

通过在 ec2 仪表板中检查 eks 集群节点的

IAM Role
来查找节点角色

© www.soinside.com 2019 - 2024. All rights reserved.