我有一个 Kubernetes 集群,其中有一些 MySQL 数据库。
我想为不同数据中心的不同 Kubernetes 集群中的每个数据库都有一个复制从属。
我使用 Calico 作为 CNI 插件。
为了使复制过程正常工作,从属服务器必须能够连接到主服务器的端口 3306。我更愿意让这些连接尽可能地孤立。
我想知道管理这个的最佳方法。
我有一个 Kubernetes 集群,其中有一些 MySQL 数据库。
我想为不同数据中心的不同 Kubernetes 集群中的每个数据库都有一个复制从属。
我使用 Calico 作为 CNI 插件。
为了使复制过程正常工作,从属服务器必须能够连接到主服务器的端口 3306。我更愿意让这些连接尽可能地孤立。
我想知道管理这个的最佳方法。
实现您的想法的方法之一是使用名为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上找到有关安装步骤的更多信息。此外,您可能会发现牧场主潜艇多集群文章有趣且有用。
祝你好运。