cassandra - 在GCP上通过VPN进行Cassandra间DC同步

标签 cassandra kubernetes google-cloud-platform

我在公司网络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/

相关文章:

apache-spark - 无法访问 Kubernetes 端点

kubernetes 上的 Redis 集群

python - 安装 Google Cloud SDK 时出错

java - 使用其ID获取Google Cloud Project编号

hadoop - Cassandra - Hive 集成

cassandra - Spark 与 Cassandra 配置

docker - Kubernetes minion 未完全连接

cassandra - Phantom vs Quill for Play Framework(Scala)和Cassandra

cassandra - 如何使用 cassandra cdc(更改数据捕获)

docker - GCC - VM 机器 - 分配更多/dev/shm 内存