如何为多个服务分配静态 IP,以便它们可以查询 postgres 数据库?
How to assign a static IP to mutliple services so they can query a postgres db?
我有多个跨节点的服务运行。
我希望能够从这些服务的 pods 查询一个 postgres 数据库 - 这个 postgres 数据库只允许来自白名单 IP 的连接 - 我需要与 postgres 的管理员共享一个静态 IP db 才能连接到它。
如何确保无论我的 pod 在哪个节点上,我都可以使用预定义的静态 IP 连接到 postgres 数据库?
我当前的设置是:
NGINX INGRESS(静态 IP)--> 基于主机的特定服务路由。
123.abc.com --> Service A --> Pod A --> Node A --> External IP A
456.abc.com --> Service B --> Pod B --> Node B --> External IP B
Pods 这些服务获取它们所在节点的外部 IP。服务类型为 NodePort。
__
可能的解决方案:
我现在正在尝试设置一个公共服务 - Service Postgres - 它将查询 Postgres 数据库。所有其他服务每次想要访问 postgres 时都会明确查询 postgres 服务。
我为服务分配了一个外部 IP。但是 pod 从节点的 IP 查询。负载均衡器中的外部 IP 似乎是用于传入请求的?我们如何为传出请求分配固定 IP?
Outgoing IP for pods in K8s - Question on Whosebug
该问题的答案令人满意。
创建一个与 PostgreSQL 对话的辅助服务。使用节点选择器将其安排在新节点池中的特定节点上。使用上述 link 中提到的步骤为该节点分配一个静态 IP。 (尚未测试此步骤)(KubeIP 似乎是一个很好的解决方案)
在私有集群的 GKE 中使用 NAT 网关。 NAT Gateway GKE
第一个选项似乎更容易实施,第二个选项更通用。
我有多个跨节点的服务运行。
我希望能够从这些服务的 pods 查询一个 postgres 数据库 - 这个 postgres 数据库只允许来自白名单 IP 的连接 - 我需要与 postgres 的管理员共享一个静态 IP db 才能连接到它。
如何确保无论我的 pod 在哪个节点上,我都可以使用预定义的静态 IP 连接到 postgres 数据库?
我当前的设置是:
NGINX INGRESS(静态 IP)--> 基于主机的特定服务路由。
123.abc.com --> Service A --> Pod A --> Node A --> External IP A
456.abc.com --> Service B --> Pod B --> Node B --> External IP B
Pods 这些服务获取它们所在节点的外部 IP。服务类型为 NodePort。
__ 可能的解决方案:
我现在正在尝试设置一个公共服务 - Service Postgres - 它将查询 Postgres 数据库。所有其他服务每次想要访问 postgres 时都会明确查询 postgres 服务。
我为服务分配了一个外部 IP。但是 pod 从节点的 IP 查询。负载均衡器中的外部 IP 似乎是用于传入请求的?我们如何为传出请求分配固定 IP?
Outgoing IP for pods in K8s - Question on Whosebug
该问题的答案令人满意。
创建一个与 PostgreSQL 对话的辅助服务。使用节点选择器将其安排在新节点池中的特定节点上。使用上述 link 中提到的步骤为该节点分配一个静态 IP。 (尚未测试此步骤)(KubeIP 似乎是一个很好的解决方案)
在私有集群的 GKE 中使用 NAT 网关。 NAT Gateway GKE
第一个选项似乎更容易实施,第二个选项更通用。