java - 应该如何建立 VPN 隧道以连接到 kubernetes 集群外部的 eureka
问题描述
我将 spring-boot 微服务部署到 kubernetes 集群。在集群外部,AWS 上有 netflix eureka 发现服务。我想在这个尤里卡上注册我的服务。网关也在 AWS 上。在我的本地机器上,我需要通过 openvpn 创建 vpn 连接以访问 eureka,Kubernetes 集群也在 aws 之外,并且需要 vpn。我有 *.ovpn,我想我必须在 kubernetes 上创建一些 vpn 隧道,但我不知道合适的工具
过去我为 kubernetes 寻找类似 openvpn 客户端的东西,但我只有 openvpn 服务器
我希望当我将正确的主机设置为 Eureka url 时,我的服务将通过 vpn 正确注册
解决方案
可以将每个Kubernetes pod 放在 OpenVPN 网络上,以便它们能够访问 Eureka 实例。但是,由于您希望 Eureka 进行服务发现,它还需要知道每个 pod 的“真实”IP,而不仅仅是查看它们的 VPN IP。如果 Eureka 为所有内容发布 VPN IP,所有流量都将通过 OpenVPN 连接进行路由,这会引入额外的延迟。这样的设置也很难调试和监控。
最好使用云提供商的网络桥接解决方案。如果您在 AWS 上,Site-to-Site VPN应该可以解决问题。Azure 也有同名的产品。谷歌有Cloud VPN和几个企业选项。
推荐阅读
- c# - C#确定满足哪个条件
- github - Github Actions 恢复的缓存没有被使用
- xml - 如何省略外部 XML 元素的名称
- google-cloud-functions - 从 Cloud Function 本身获取 Cloud Function 名称
- python - 是否有经验法则可以知道我是在修改值还是引用值?
- java - 尝试保存到 MySQL 日期时出现 JpaRepository SQL 语法错误
- javascript - 通过studentId字段过滤唯一学生对象的javascript不可变过滤器
- asp.net-core - 分布式 IdentityServer4 .net 核心(多实例)问题 HttpContext 不能为空
- java - 使用应用程序属性动态创建 bean
- android - 仅当所有内容都循环通过时,如何在循环中返回