Kubernetes中的跨集群通信

时间:2020-02-03 11:19:46

标签: amazon-web-services kubernetes amazon-eks

我在 AWS EKS 中运行着两个kubernetes集群。我该如何将它们连接起来,以便两者都能通信和共享数据?

在一个集群上,只有无状态应用程序正在运行,而在另一个有状态的应用程序(如 Redis DB RabbitMQ 等)上运行。

哪种方式最容易建立沟通?

2 个答案:

答案 0 :(得分:3)

如果您有特定的集群来运行数据库和其他私有状态工作负载,请确保该EKS集群的工作节点是私有的。

下一步将是创建服务资源,以使用内部端点公开您的Redis数据库。您可以通过指定以下内容来实现它:

annotations:
    service.beta.kubernetes.io/aws-load-balancer-internal: "true"

使用以上内容,您将使用内部端点公开整个群集和有状态的工作负载。完成此操作后,您有两种选择来连接VPC。

  1. VPC对等以允许一个群集与另一个群集连接。
  2. 两个VPC将用来私下通信的Transit Gateway。

答案 1 :(得分:0)

我将按照@marcincuber的建议方法使用内部负载平衡器。

但是,我还得到了另一种解决方法,将 Redis,RabbitMQ 服务类型公开为LoadBalancer

由于我的两个群集都在同一VPC中,因此不需要VPC对等或任何网关设置,因此我正在考虑通过使用Kubernetes默认服务loadBalancerSourceRanges来限制流量。