【发布时间】:2021-08-23 20:00:34
【问题描述】:
我们有一个 AKS 集群,其中部署了 Postgres。我们希望将同一个集群部署到配对区域,但两个 Postgres 服务器必须能够看到并相互通信。我们是否需要在每个区域的 VNet 之间实现对等互连,以便 AKS 中的两个 Postgres pod 能够看到并相互通信?
提前谢谢
【问题讨论】:
标签: azure-aks
我们有一个 AKS 集群,其中部署了 Postgres。我们希望将同一个集群部署到配对区域,但两个 Postgres 服务器必须能够看到并相互通信。我们是否需要在每个区域的 VNet 之间实现对等互连,以便 AKS 中的两个 Postgres pod 能够看到并相互通信?
提前谢谢
【问题讨论】:
标签: azure-aks
您已经在Microsoft Q&A 中找到了答案。在此处发布相同的内容以供 Stack Community 参考。谢谢Srijit Bose在问答中的回答。
场景:
具有 Postgres 工作负载实例 A 的 AKS 群集 A 部署在 Azure 中 具有 Postgres 工作负载实例 B 的区域 A 和 AKS 群集 B 是 部署在 Azure 区域 B。Postgres 工作负载实例 A 和 Postgres 工作负载实例 B 应该能够相互通信。
可能的解决方案:
ServiceType LoadBalancer 或公共 Ingress 的服务公开它们,Postgres A 和 Postgres B 可以通过公共互联网相互通信。参考: Concepts - Networking in Azure Kubernetes Services (AKS) - Azure Kubernetes Service | Microsoft Docs
参考: Configure a VNet-to-VNet VPN gateway connection: Azure portal - Azure VPN Gateway | Microsoft Docs
参考: Azure Virtual Network peering | Microsoft Docs
您也可以参考AKS Baseline for multi-region clusters和Network Topology in Baseline architecture for AKS Clusters。
由于 postgres 不支持主动/主动,我们将使用 基于触发器的工具,因此如果 AKS A 中的 Posgress 有写入,则 write 被传播到 AKS B。我不想使用 Internet,并且会 更喜欢对等 VNET。如果我对 VNET 进行对等,我认为 AKS A 可以 与 AKS B 交谈,我们可以使用 pod 的私有 IP 如果端口在两个 AKS 群集上公开,则可以进行通信。 我们正在使用 CNI 进行联网。
当您使用 Azure CNI 作为 AKS 群集的网络插件时,将从 AKS VNET/子网分配 Pod IP。如果两个虚拟网络对等,请确保与两个虚拟网络中任一子网关联的有效入站网络安全组规则必须允许从source: VirtualNetwork 到destination: Any on the requisite protocol(s) 的流量到ports: Any。
【讨论】: