我在公司网络172.16.0.0/16和GCP 10.164.0.0/24之间建立了VPN
在GCP上,有一个Cassandra集群,其中运行着3个实例。这些实例获得动态的本地ip地址-例如10.4.7.4,10.4.6.5、10.4.3.4。
我的问题:从公司网络无法访问10.4x地址,因为该隧道仅适用于10.164.0.0/24。
我尝试在10.164.0.100上设置LB服务,后面有cassandra节点。这行不通:当我将该ip地址配置为本地群集上的种子节点时,它会从10.4.x ip地址之一中获得答复,该IP地址不在其种子列表中。
我需要建议如何在这种情况下设置内部DC同步。
最佳答案
K8分配给Pod和Services的IP地址是internal cluster-only addresses,无法从群集外部访问。某些CNI可以在群集内地址和外部网络之间建立连接,但是我认为这不是一个好主意。
您需要使用带有NodePort或LoadBalancer类型的Service公开Cassandra。这是Kubernetes Github提供的另一种具有相同解决方案的answer。
如果您要添加类型为NodePort的服务,那么您的Cassandra将在所有Kubernetes节点上的选定端口上可用。
如果您选择LoadBalancer,Kubernetes将为您创建Cloud Load Balancer,它将成为Cassandra的入口点。因为您有到VPC的VPN,所以我认为您需要Internal Load Balancer。
关于cassandra - 在GCP上通过VPN进行Cassandra间DC同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55261992/