使用 KubeSlice 简化混合/多集群、多云 Kubernetes 部署

云计算 云原生
KubeSlice(https://kubeslice.io/) 通过在多个集群之间创建虚拟集群,帮助加速应用程序的速度,消除了网络布局、多租户和跨集群的微服务可达性所带来的障碍。

多云或混合策略使企业可以自由地使用最好的云原生服务。每个云提供商都有独特的工作负载价值主张供企业考虑。例如,Oracle Cloud 除了计算功能之外,还带来了一流的数据库管理功能、分析生态系统以及其他云原生产品。因此,云提供商提供的多样化价值支柱使多云成为对企业有吸引力的选择。然而,简化跨集群部署和连接工作负载的能力仍然是一个巨大的挑战。我们可以借助 Avesha 的 KubeSlice 与托管的 Kubernetes 云基础设施合作,企业将能够解决其多云挑战。

KubeSlice(https://kubeslice.io/) 通过在多个集群之间创建虚拟集群,帮助加速应用程序的速度,消除了网络布局、多租户和跨集群的微服务可达性所带来的障碍。

Kubernetes 的扩散

在混合/多云部署的背景下,值得注意的是,容器化应用程序架构的采用已经随着 Kubernetes 及其灵活的平台发生了深刻的变化。Kubernetes 已成为临时容器化工作负载编排的事实上的标准。企业环境中微服务的激增导致了 Kubernetes 生态系统的发展。

挑战

大规模部署和有效管理 Kubernetes 需要强大的设计流程和严格的管理纪律。企业面临着基于工作负载类型的决策:高度事务性、以数据为中心或特定于位置。此外,工作负载分配需要考虑延迟、弹性、合规性和成本等因素。

此外,微服务的复杂性使得互连成为现代应用程序架构的焦点。只要您将所有微服务部署在单个集群中,并且维护集群中运行的所有服务之间的信任,Kubernetes 就可以很好地处理此类复杂性。Kubernetes 默认将 CPU、Memory、StorageClass、PersistentVolume 等各种资源作为集群中的共享对象。

这就是事情变得复杂的地方。多个团队在同一个集群中部署多个应用程序会导致共享资源的痛苦编排,其中包括安全问题和潜在的资源争夺。Kubernetes 有一个逻辑上的命名空间,可以为应用程序提供隔离。但同样管理和分配团队拥有多个应用程序的命名空间资源会带来非常大的运维挑战。Kubernetes 本身并没有将多租户视为用户和资源。

成熟的部署——挑战不断增加

随着组织在运行 Kubernetes 方面达到成熟,他们会扩展其生态系统到多集群部署。这些部署托管在数据中心或分布在数据中心以及超大规模企业的云中。企业选择部署多集群环境的一些原因是团队边界、延迟敏感性(应用程序需要更接近客户)、地理弹性和数据管辖权(涉及数据无法跨越地理边界的国家/地区的用户数据限制的政策等)。随着跨集群的应用程序部署不断增加,这些应用程序越来越需要访问不同集群中的其他应用程序。

当平台团队面临为应用程序开发人员提供基础设施时,他们会遇到繁琐的运维管理挑战:

(1)在多集群部署中扩展命名空间一致性的构建,同时保持租户性质。

(2)对集群资源进行管理。

(3)防止环境配置漂移而导致集群配置问题。

Kubernetes 网络——终极挑战

Kubernetes 网络绝非易事,虽然我们习惯于在需要边界和控制的地方定义域和防火墙,但在 Kubernetes 中映射这些域和防火墙具有挑战性。是的,您需要命名空间之外的额外灵活性。必须连接多个集群,此外,跨云分配工作负载需要 NetOps 团队进行认真的规划。

KubeSlice - 高效的混合/多云集群连接和管理解决方案

在企业世界中,管理大规模应用和基础架构可能是一项艰巨的任务。有了 Kubernetes,编排应用变得更简单了,但随着从单个集群扩展到多集群部署,编排和扩展基于微服务的应用变得更加困难。作为基于 Kubernetes 的应用领域的领先创新者,Avesha 开发了突破性的专利产品 KubeSlice 和 Smart Scaler,使组织能够高效、经济地管理和扩展其应用。

KubeSlice 通过创建一个名为 Slice 的 Kubernetes operator 来提供对运行大规模多集群应用程序所面临复杂挑战的简化解决方案。该operator在一系列集群上创建一个虚拟集群,作为逻辑应用边界,并实现Pod和Service之间无缝通信。Slice跨越地理边界,在任何集群、云端、边缘或K8s分布上都可以部署应用。

此外,KubeSlice 还通过东/西路径提供符合 NIST 标准的 VPN 隧道以实现安全低延迟的跨集群网络连接。Slice 可作为多个云提供商间以及多个云提供商内部共享安全域。通过用户友好特性,在每个虚拟集群中提供资源优化、命名空间隔离、RBAC管理和节点亲和力等功能,KubeSlice Manager UI 简化了对一系列集群的管理。组织可以轻松地管理和扩展其应用,并优先考虑安全性。

随着企业将应用架构扩展到位于数据中心或云服务提供商区域的多个集群,或跨越多个云服务提供商,Kubernetes集群需要具备完全整合连接性以及跨集群传播命名空间的能力。

无论物理位置如何,KubeSlice都能在单个集群或一组集群中创建多个逻辑切片。现有的簇内通信仍然局限于利用每个Pod的CNI接口进行本地通信。通过创建覆盖网络来实现簇间通信,KubeSlice在不同簇之间实现了网络流量隔离。

为此,KubeSlice向Pod添加第二个接口,使得本地流量保持在CNI接口上,并且发送到外部簇的流量通过覆盖网络路由到目标Pod上,从而使得KubeSlice与CNI无关。

同时,KubeSlice解决了云服务提供商、数据中心和边缘位置之间重叠IP地址的复杂问题。覆盖网络配置了一个非重叠的RFC1918私有网络CIDR地址空间。由于KubeSlice创建了网络隔离,它还负责分配子网,根据分配给具有簇间可达性的Pod数量进行配置。此外,在同一集群或集群组中创建的多个切片可以配置相同的RFC1918地址,进一步简化IP地址管理。

KubeSlice提供服务,极大地增加了平台和产品团队在多集群环境中实现应用程序统一性的速度。KubeSlice 为其中的 pod 带来了 3 种功能,包括:Kubernetes 服务、网络服务以及多租户和隔离。

Kubernetes 服务:KubeSlice 通过管理 Kubernetes 对象、命名空间和 RBAC 规则来管理命名空间管理和应用程序隔离,以提高运维效率。KubeSlice 可以对一组环境、团队或应用程序进行集群分片或“切片”,这些环境、团队或应用程序希望能够合理隔离,但共享公共计算资源和 Kubernetes 控制平面。

网络服务:Kubernetes 集群需要能够将连接和 Pod 到 Pod 通信与跨集群的命名空间传播完全集成。现有的集群内通信利用 CNI 接口保留在集群本地。本机 KubeSlice 配置允许通过创建用于集群间通信的覆盖网络来隔离集群之间的网络流量。KubeSlice 通过向 Pod 添加第二个接口来实现此目的,允许本地流量保留在 CNI 接口上,并且发往外部集群的流量通过覆盖网络路由到其目标 Pod,从而使 KubeSlice CNI 变得不可知。

KubeSlice 保留了 Kubernetes 的第一原则,即通过创建 Slices 来实现对集群中任何 Pod 的通信能力,从而实现无缝的 Pod 到 Pod 通信。KubeSlice Slice 互联解决了云提供商、数据中心和边缘位置之间 IP 地址重叠的复杂问题。

多租户和隔离:KubeSlice 允许在单个集群或一组集群中创建多个逻辑切片,以解决从网络到应用程序域的整个过程中的真正隔离。

架构

KubeSlice 为需要在多个集群之间提供安全且高度可用的连接的应用程序提供网络服务。KubeSlice 创建一个平面覆盖网络来连接集群。覆盖网络可以描述为一个应用程序切片,它在多个集群中运行的应用程序的 Pod 之间提供连接切片。它也可以被描述为跨集群的特定于应用程序的 VPC。Pod 可以连接到切片覆盖网络,并跨集群边界无缝地相互通信。

通过创建加密的 VPN 隧道来保护集群之间的连接,该隧道为集群间流量提供安全通道。

KubeSlice 还可用于实现跨集群的服务发现和可达性。集群中运行的 Kubernetes 服务可以通过分片覆盖网络导出,以便其他集群中运行的 pod 发现并访问它。

KubeSlice 架构由多个组件组成,这些组件相互交互以管理切片覆盖网络的生命周期。下图显示了 KubeSlice 的主要组件以及它们之间的连接。

控制器集群包含 KubeSlice 控制器,用于管理用户配置并协调多个工作集群之间切片覆盖网络的创建。它定义并拥有许多 CRD,用于存储集群中的配置和操作信息。CRD 还用于控制器集群和工作集群之间的交互。工作集群连接到控制器集群的 Kubernetes APIServer 以获取存储在自定义资源对象中的配置。

工作集群的主要组件是切片控制器。它与控制器集群交互,并为工作集群上的切片覆盖网络设置所需的基础设施。工作集群还包含一个名为 KubeSlice DNS 的 DNS 服务器,用于集群间服务发现。用户还可以为东西向 (E-W) 流量创建带有入口和出口网关的切片。Slice Operator 提供网关并设置路由规则,以在应用程序 Pod 和网关 Pod 之间汇集流量。

测试

Avesha 在沙盒环境中提供了4个小时的 KubeSlice免费使用。通过在 https://community.aveshalabs.io/ 注册,即可获得对该产品的实际体验。感兴趣的可以直接注册体验。

注册后收到的响应电子邮件会包含访问沙盒环境中的KubeSlice的详细说明。使用共享的凭据,运行 kubeslice-cli install --profile=full-demo 命令可以配置完整的环境。此设置会提供三个 kind 集群。我们可以使用该配置来探索和学习 KubeSlice,无需安装任何内容。

责任编辑:姜华 来源: k8s技术圈
相关推荐

2023-11-02 09:00:00

Kubernetes集群

2023-04-06 17:17:29

混合云Kubernetes多集群

2022-05-24 06:04:25

多云混合云Kubernetes

2022-04-15 09:30:00

Kubernetes云计算多云

2020-04-27 09:38:15

Kubernetes多云混合云

2020-05-13 07:00:00

K9SKubernetes集群

2016-10-13 15:03:27

混合云多云环境微服务

2022-02-17 11:34:30

Nutanix

2017-01-06 16:06:53

存储IBM软件

2023-11-27 00:18:38

2021-12-24 10:47:49

Kubernetes容器化微服务

2022-05-24 09:00:00

云计算Kubernetes安全

2021-02-07 08:00:00

Kubernetes集群云原生

2022-07-24 21:11:19

KubernetesLinux

2022-08-26 07:52:54

Kubernetes容器混合云

2018-02-25 08:51:13

OpenStack私有云混合云

2022-04-29 09:55:55

NocalhostKubeVela混合云

2022-03-29 17:17:45

Nutanix

2021-11-22 16:21:28

Kubernetes 运维开源
点赞
收藏

51CTO技术栈公众号