我正在尝试将 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
Run Code Online (Sandbox Code Playgroud)
奇怪的是,它所假设的角色似乎与我的 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
Run Code Online (Sandbox Code Playgroud)
尽管服务帐户已成功创建,但我仍然收到 AccessDeniedException。
我发现的一件事是,当我手动将 CloudWatchAgentServerPolicy 添加到工作节点时,日志工作正常,但这不是我想要的实现,而是宁愿采用自动方式添加服务帐户,而不是直接接触工作节点,如果可能的。我所遵循的步骤可以在本文档的底部找到。
非常感谢!
amazon-web-services amazon-cloudwatch kubernetes amazon-eks aws-cloudwatch-log-insights