Cassandra通过GCP上的VPN进行DC同步

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cassandra通过GCP上的VPN进行DC同步相关的知识,希望对你有一定的参考价值。

我在公司网络172.16.0.0/16和GCP 10.164.0.0/24之间有VPN

在GCP上有一个运行3个实例的cassandra集群。这些实例获得动态的本地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地址获得一个回复,它在种子列表中没有。

我需要建议如何在这种情况下设置DC间同步。

答案

K8分配给Pods和Services的IP地址是internal cluster-only addresses,无法从群集外部访问。一些CNI可以在集群内地址和外部网络之间建立连接,但我认为这不是一个好主意。

您需要使用带有NodePort或LoadBalancer类型的Service来展示您的Cassandra。这是另一个answer与Kubernetes Github的相同解决方案。

如果要添加类型为NodePort的服务,则Cassandra将在所有Kubernetes节点上的选定端口上可用。

如果您选择LoadBalancer,Kubernetes将为您创建Cloud Load Balancer,它将成为Cassandra的入口点。因为你的VPC有VPN,我想你需要一个Internal Load Balancer

以上是关于Cassandra通过GCP上的VPN进行DC同步的主要内容,如果未能解决你的问题,请参考以下文章

Cassandra复制因子:需要节点具有完整的报告数据

GCP PubSub:Python 中的同步拉取订阅者?

两个 Cassandra DC 在 nodetool describecluster 中逐渐变得不可访问

如何修复cassandra节点

DCOS实践分享:如何基于DC/OS整合SMACK(Spark, Mesos, Akka, Cassandra, Kafka)

DCOS实践分享:如何基于DC/OS整合SMACK(Spark, Mesos, Akka, Cassandra, Kafka)