使用 Kuma 运行 多云服务网格
Using Kuma to run a multi-cloud service mesh
如何使用 Kuma 到 运行 跨基于 VM 的环境以及基于 Kubernetes 的环境的多云服务网格?
具体来说,服务发现将如何以基于 VM 的工作负载发现基于 K8s 的工作负载的方式工作,反之亦然?
Kuma 将 so-called zone
定义为控制隔离域,即所有工作负载连接都由单个控制平面管理。这样的控制平面被称为remote
。整体视图和策略管理在统一所有区域的 global
控制平面中完成。
当开始规划分布式部署时,他们必须获得以下项目:
Global
控制平面的部署位置及其类型。后者可以是 Universal
(VM/BareMetal/Container) 或 Kubernetes(on-premise/cloud).
- 要添加的区域的数量和类型。这些可以随着时间的推移而改变。
按照 instructions 安装 global
控制平面,具体步骤适用于所选部署类型。按照说明收集相关 IP address/ports。
安装 remote
控制平面相当简单。在整个 multi-zone 部署的生命周期内,可以根据需要重复此过程。
Cross-zone服务消费简述here。简而言之,我们建议使用以下语法来访问服务 echo-server
,部署在 Kubernetes 命名空间 echo-example
中并暴露在端口 1010
上:
<kuma-enabled-pod>$ curl http://echo-server_echo-example_svc_1010.mesh
使用此语法,甚至可以从工作负载在 VM 中运行的相邻通用区域中找到和使用该服务。 Kuma 利用其自己的 DNS 服务,允许此服务发现。
建议在 VM 中声明的服务遵循相同的服务命名格式,这样如果需要在 Kubernetes 集群中有一个服务副本,它们可以轻松互换,而无需重新配置整个基础架构。
如何使用 Kuma 到 运行 跨基于 VM 的环境以及基于 Kubernetes 的环境的多云服务网格?
具体来说,服务发现将如何以基于 VM 的工作负载发现基于 K8s 的工作负载的方式工作,反之亦然?
Kuma 将 so-called zone
定义为控制隔离域,即所有工作负载连接都由单个控制平面管理。这样的控制平面被称为remote
。整体视图和策略管理在统一所有区域的 global
控制平面中完成。
当开始规划分布式部署时,他们必须获得以下项目:
Global
控制平面的部署位置及其类型。后者可以是Universal
(VM/BareMetal/Container) 或 Kubernetes(on-premise/cloud).- 要添加的区域的数量和类型。这些可以随着时间的推移而改变。
按照 instructions 安装 global
控制平面,具体步骤适用于所选部署类型。按照说明收集相关 IP address/ports。
安装 remote
控制平面相当简单。在整个 multi-zone 部署的生命周期内,可以根据需要重复此过程。
Cross-zone服务消费简述here。简而言之,我们建议使用以下语法来访问服务 echo-server
,部署在 Kubernetes 命名空间 echo-example
中并暴露在端口 1010
上:
<kuma-enabled-pod>$ curl http://echo-server_echo-example_svc_1010.mesh
使用此语法,甚至可以从工作负载在 VM 中运行的相邻通用区域中找到和使用该服务。 Kuma 利用其自己的 DNS 服务,允许此服务发现。
建议在 VM 中声明的服务遵循相同的服务命名格式,这样如果需要在 Kubernetes 集群中有一个服务副本,它们可以轻松互换,而无需重新配置整个基础架构。