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添加到我的工作节点时,日志运行良好,但这不是我想要的实现,相反,我希望有一种自动添加服务帐户的方式,如果可能的话,不要直接接触工作节点。我遵循的步骤可以在本文档的底部找到。

非常感谢!

对于遇到此问题的任何人:在quickstart yaml中,有一个fluent bit服务帐户,必须从该文件中删除并手动创建。对我来说,我使用以下命令创建了它:

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服务帐户后,删除并重新应用所有amazoncloudwatch命名空间项,它应该可以工作了。

最新更新