2

我有一个 Kubernetes 集群,其中有一些 MySQL 数据库。

我想为不同数据中心的不同 Kubernetes 集群中的每个数据库都有一个复制从属。

我使用 Calico 作为 CNI 插件。

为了使复制过程正常工作,从属服务器必须能够连接到主服务器的端口 3306。我更愿意让这些连接尽可能地孤立。

我想知道管理这个的最佳方法。

在此处输入图像描述

4

1 回答 1

2

实现您的想法的方法之一是使用名为Submariner的新工具。

Submariner 支持在本地或云端的不同 Kubernetes 集群中的 Pod 之间直接联网。

这种新的解决方案克服了 Kubernetes 集群之间的连接障碍,并允许大量新的多集群实现,例如跨地理区域的 Kubernetes 内的数据库复制和跨集群部署服务网格。

Submariner 的主要特点包括:

与现有集群的兼容性和连接性:用户可以将 Submariner 部署到现有的 Kubernetes 集群中,并在不同集群中的 Pod 之间添加第 3 层网络连接。

安全路径:使用 IPSec 隧道实现加密网络连接。各种连接机制:虽然 IPsec 是开箱即用的默认连接机制,但 Rancher 将在不久的将来启用不同的互连插件。

中心化代理:用户可以注册和维护一组健康的网关节点。

灵活的服务发现:Submariner 提供跨多个 Kubernetes 集群的服务发现。

CNI 兼容性:适用于流行的 CNI 驱动程序,例如 Flannel 和Calico

使用它的先决条件:

至少 3 个 Kubernetes 集群,其中一个被指定用作所有连接的集群都可以访问的中央代理;这可以是您连接的集群之一,但有一个限制,即集群需要启动才能促进互连/协商

集群之间的不同集群/服务 CIDR(以及不同的 Kubernetes DNS 后缀)。这是为了防止流量选择器/策略/路由冲突。

通过 Internet 实现实例之间的直接 IP 连接(如果未通过 Internet 运行 Submariner,则在同一网络上)。Submariner 支持 1:1 NAT 设置,但在此配置中有一些警告/提供商特定的配置说明。

了解每个集群的网络配置

支持 crd-install hook 的 Helm 版本 (v2.12.1+)

您可以在suberliner github上找到有关安装步骤的更多信息。此外,您可能会发现牧场主潜艇多集群文章有趣且有用。

祝你好运。

于 2019-03-27T12:42:43.390 回答