AWS部署Kubeflow时Istio Ingress无地址的权限问题求助
错误原因
UnauthorizedOperation 403报错是因为aws-alb-ingress-controller运行时使用的IAM身份缺少调整负载均衡、安全组相关的操作权限,你关闭enablePodIamPolicy后,控制器默认继承EKS工作节点的IAM角色权限,该角色默认没有ALB相关的操作权限。
修复步骤
- 首先获取EKS集群工作节点关联的IAM角色,可通过以下命令查询:
aws eks describe-nodegroup --cluster-name <替换为你的集群名> --nodegroup-name <替换为你的节点组名> --query 'nodegroup.nodeRole'
也可以直接到AWS EC2控制台查看任意集群工作节点实例关联的IAM角色。 - 为该IAM角色附加包含以下权限的策略,可直接使用AWS托管策略
AmazonEKSLoadBalancerControllerPolicy,也可自定义如下权限策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DeleteSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupIngress", "elasticloadbalancing:*" ], "Resource": "*" } ] }
- 等待权限生效后,重启aws-alb-ingress-controller Pod加载新权限:
kubectl delete pod -n kubeflow -l app=aws-alb-ingress-controller - 5分钟后再次查询Ingress即可获取访问地址:
kubectl get ingress -n istio-system
其他问题说明
- MPI operator未就绪不影响Kubeflow核心功能使用,若后续需要使用该组件,可单独查看对应Pod的事件和日志排查镜像拉取、资源配额类问题。
- 若后续需要开启
enablePodIamPolicy功能,需先为EKS集群配置IAM for Service Accounts的OIDC提供商,再调整配置重新部署即可。
内容的提问来源于stack exchange,提问作者Umer Qaisar
相关产品推荐
相关产品推荐

