AWS EKS自动模式集群中Kubernetes Gateway API部署问题求助
自动模式EKS集群启用Gateway API的解决方案
我之前在自动模式的EKS集群里成功启用过Gateway API,正好遇到过你说的这个IMDS访问问题,给你说下具体解决步骤:
调整节点的IMDS跳数限制
自动模式EKS的节点默认把http-put-response-hop-limit设为1,Pod里的控制器跨hop访问IMDS会被拦截,必须改成2:- 先找到集群节点组对应的Launch Template ID:
aws eks describe-nodegroup --cluster-name <你的集群名称> --nodegroup-name <节点组名称> --query 'nodegroup.launchTemplate.id' --output text - 更新这个Launch Template的元数据配置:
aws ec2 create-launch-template-version --launch-template-id <上面拿到的ID> --source-version '$Latest' --version-description "update imds hop limit" --launch-template-data '{"MetadataOptions": {"HttpPutResponseHopLimit": 2, "HttpTokens": "required"}}' - 滚动更新节点组,让新配置覆盖旧节点:
aws eks update-nodegroup-version --cluster-name <你的集群名称> --nodegroup-name <节点组名称> --launch-template version='$Latest'
- 先找到集群节点组对应的Launch Template ID:
验证配置是否生效
进入Gateway API控制器的Pod,测试能不能拉取VPC ID:kubectl exec -n <控制器所在命名空间> <控制器Pod名称> -- curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/$(curl -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/)/vpc-id如果能正常返回VPC ID,说明IMDS访问已经打通。
确认控制器正常运行
检查Pod状态和日志,确认没有再出现无法检测VPC ID、集群名称的报错:kubectl get pods -n <控制器所在命名空间> kubectl logs -n <控制器所在命名空间> <控制器Pod名称>
调整完之后,Gateway API控制器就能正常启动,后续创建Gateway、HTTPRoute这些资源都能正常工作。
内容的提问来源于stack exchange,提问作者Batato
相关产品推荐
相关产品推荐

