小编Lee*_*ton的帖子

在没有负载均衡器的情况下将K8s TCP服务端点暴露给公共Internet

所以我正在开发一个项目,涉及管理k8s集群内的许多postgres实例.使用Stateful Set带有Servicefor进行网络通信的每个实例进行管理.我需要Service通过端口5432上的DNS向公共互联网公开.

这里最自然的方法是使用k8s Load Balancer资源和外部dns之类的东西来动态地将DNS名称映射到负载均衡器端点.这对于许多类型的服务都很好,但是对于数据库,存在一个巨大的限制:空闲连接超时.AWS ELB的最大空闲超时限制为4000秒.有许多长时间运行的分析查询/事务很容易超过这个时间,更不用说可能长时间运行的操作了pg_restore.

所以我需要某种解决方案,让我能够解决负载均衡器的局限性.Node IPs因为我需要5432为集群中的每个postgres实例公开端口,所以是不可能的.Ingress也似乎不太理想,因为它是仅支持HTTP/HTTPS的第7层代理.我已经看到了涉及一些configmap chicanery的nginx-ingress的变通方法,但是我有点担心像大型项目这样的黑客攻击.ExternalName是有趣的,但即使我能找到更好的文档,我认为它可能最终有类似的限制NodeIP.

任何建议将不胜感激.

amazon-web-services kubernetes

7
推荐指数
1
解决办法
632
查看次数

标签 统计

amazon-web-services ×1

kubernetes ×1