运行于私有子网的EKS集群如何对接面向互联网的负载均衡
EKS节点迁移私有子网后公网ELB可用解决方案
你不需要担心公网ELB无法访问的问题,公有子网部署的公网ELB完全可以正常对接私有子网内的EKS工作节点,只需按以下要求配置即可:
基础网络配置要求
- 同时保留原有公有子网和新增的私有子网,公有子网用于承载公网ELB,私有子网用于部署EKS工作节点
- 私有子网关联的路由表需配置NAT网关作为公网出口,确保Pod访问外部第三方服务的出口IP为NAT网关的静态EIP,满足白名单要求
- 公有子网关联的路由表需保留原有的互联网网关(IGW)路由,确保公网ELB可以正常接收互联网侧的访问请求
- 调整VPC安全组规则:允许ELB所属安全组访问私有子网节点的
30000-32767端口段(K8s默认NodePort范围),以及前端Pod暴露的业务端口
EKS节点组迁移操作
- 先在私有子网中新建工作节点组,节点的IAM权限、标签、污点配置和原有公有子网节点组保持一致
- 逐步驱逐原有公有子网节点上的Pod,验证前端业务Pod可以正常调度到私有子网的新节点上且运行状态正常
- 确认业务无异常后再删除原有公有子网的节点组
公网ELB适配调整
- 如果你是通过K8s原生
LoadBalancer类型Service创建的ELB,无需手动修改配置,AWS云控制器会自动检测新的私有子网节点,将ELB的后端目标组同步更新为新节点IP - 如果你是手动创建的ELB,直接在AWS控制台将ELB的后端目标组替换为新的私有子网节点IP即可
- 验证ELB健康检查状态正常,公网访问前端HTTP/HTTPS服务可正常响应
可选优化方案
如果后续有集群升级计划,可以替换为AWS Load Balancer Controller(原ALB Ingress Controller),通过Ingress资源管理公网入口,无需暴露NodePort,安全性更高,当前EKS 1.15版本无需调整也可正常运行。
内容的提问来源于stack exchange,提问作者DevopsinAfrica
相关产品推荐
相关产品推荐

