如何解决Kubernetes Route53 external-dns问题
我正在带Ingress-Nginx-ingress-controller的EKS和外部DNS在AWS中运行K8S集群。应用程序运行正常,可以在负载均衡器上访问。现在,我试图将DNS指向该群集,即e1.exapmle.com,为此,我在关注以下文档。
https://github.com/kubernetes-sigs/external-dns
我面临的问题是,我有两个AWS帐户(QA,Staging),并且在分段帐户中创建了托管区域,并且群集在QA帐户上运行。我已经尝试使用跨帐户IAM角色来使其正常工作,但是我只能通过Web控制台看到托管区域,cli或外部DNS吊舱无法与Route53通信。
这是我到目前为止所做的:
创建IAM策略
{
"Version": "2012-10-17","Statement": [
{
"Effect": "Allow","Action": [
"route53:ChangeResourceRecordSets"
],"Resource": [
"arn:aws:route53:::hostedzone/*"
]
},{
"Effect": "Allow","Action": [
"route53:ListHostedZones","route53:ListResourceRecordSets"
],"Resource": [
"*"
]
}
]
}
创建一个跨帐户IAM角色,以信任帐户登台和受信任的帐户质量检查。
通过为上述策略指定IAM角色ARN,在受信任帐户中使用Assum策略。
通过上述操作,我只能在切换角色时通过Web控制台查看托管区域。
解决方法
我假设您向extern-dns pod提供了EKS帐户中角色的角色信息,该角色允许您在HostedZone帐户中扮演角色!?
这将不起作用,因为(如在控制台内一样)您需要显式地承担具有现有权限的角色。
您需要将带有附加的route53策略的跨帐户角色直接传递到外部DNS吊舱。
Pod->在其他帐户中扮演角色->接收临时文件。凭据
pod->在eks帐户中担任角色(->允许担任交叉帐户角色) 我猜最后一步不会发生
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。