阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统

这篇具有很好参考价值的文章主要介绍了阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

近日,阿里云分布式云容器平台 ACK One [ 1] 发布“多集群网关” [ 2] (ACK One Multi-cluster Gateways)新特性,这是 ACK One 面向多云、多集群场景提供的云原生网关,用于对多集群南北向流量进行统一管理。

基于 ACK One 多集群网关可以快速构建多集群应用的同城容灾系统,帮助企业以更简单、高效的方式为应用数据的连续性和可用性提供保障。

为什么需要同城容灾

由于故障的多样性和不确定性,在一些极端情况下(如发生断网断电、火灾、地震等),需要保证应用和数据的高可用,因此需要容灾方案,目前云上容灾主要分为三类:

  1. 同城跨 AZ 容灾

  2. 跨地域容灾

  3. 两地三中心同城容灾包含多活和主备,同城中心之间物理距离较近,网络延迟低,可防范 AZ 级别性质的灾难损害(如火灾、发生断网断电等);跨地域容灾则网络延迟相对较高,但可防范地域性质的灾难损害(如地震、水灾等);两地三中心则将同城双中心和跨 Region 灾备结合起来,兼具了二者优点,适用于应用与数据连续性和可用性要求高的场景。而从实际情况考虑,同城容灾相比于跨地域容灾,在数据容灾方面容易实现得多,所以同城容灾仍然具有非常重要的意义。

现有同城容灾方案及问题

在 K8s 集群中的应用,现有的同城多可用区/多集群容灾的方案,基本都是基于 DNS 和多个 Ingres Controller 来实现,一般架构图如下所示:

阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统,阿里云,云计算,容器

虽然在 DNS 与 SLB 之间可以增加类似于全局流量管理(GTM)等一些网关功能类产品,来支持用户就近接入、高并发负载均衡、健康检查与故障切换等能力,完善容灾方案,但现有的基于 DNS 的容灾方案仍具有一些问题:

  1. 基于 DNS 的方案,无法支持七层路由转发;

  2. 基于 DNS 的方案在 IP 切换时候,通常会有 Client 端缓存而造成服务短暂不可用,用户体验有所影响;

  3. 基于 DNS 的方案通常需要多个 LB(每个集群/可用区一个),并且需要在每个集群中都安装 Ingress Controller 和创建 Ingress 对象,管理和费用成本较高。

基于 ACK One多集群网关实现的同城容灾方案

什么是 ACK One 多集群网关

多集群网关由 ACK One Fleet 通过集成 MSE 云原生网关 [ 3] 来实现,并使用 Ingress API 来管理多集群南北向流量,可以帮您管理七层流量,并进一步实现同城自动容灾、基于 Header 的灰度发布验证、基于副本数和权重的流量负载均衡等多集群应用相关的所需能力。

此外,多集群网关是地域级别的,所有操作都仅需在 ACK One Fleet 实例中操作(创建网关、Ingress 资源等),无需在每个 ACK 集群中都安装 Ingress Controller 和创建 Ingress 资源,提供地域级全局流量管理能力的同时,也减少了多集群管理的成本。

阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统,阿里云,云计算,容器

关于 MSE Ingress 与 MSE 云原生网关

MSE Ingress [ 4] 是在 MSE 云原生网关之上提供更为强大的 Ingress 流量管理方式,兼容 Nginx Ingress 以及 50 多个 Nginx Ingress 的注解,覆盖 90% 以上的 Nginx Ingress 业务场景,支持多服务版本同时灰度发布、灵活的服务治理能力以及全方位的安全防护保障,能够满足大规模云原生分布式应用的流量治理诉求。其支持的 Annotation 详见 MSE Ingress 支持的 Annotation [ 5]

在 ACK One Fleet 中,管理员可以通过 kubectl 创建 MseIngressConfig 资源来创建出 MSE 云原生网关,由其来管理多集群流量,并创建 Ingress 资源来管理流量路由。

Kubernetes 服务的流量管理概述

在 Kubernetes 的流量管理领域,Ingress Controller 是非常重要的方案,Ingress Controller 作为一个专门的 4 层和 7 层代理,用来管理南北向流量:将流量导入 K8s 集群,到达 services,再导出。

Kubernetes Ingress API [ 6] 主要目标就是使用简单的、声明式的 API 来代理集群中服务,其在 Kubernetes 1.2 就已 Beta,有非常多的厂商支持 Ingress,并扩展了非常多的功能,使用也很广泛,所以使用 Ingress API 的学习成本较低。

值得一提的是,Kuberentes Gateway API [ 7] 相比于 Ingress,提供了更通用的代理 API,支持更多协议,可实现更多的能力,MSE 在后续提供对 Gateway API 的支持,满足用户复杂的流量管理诉求。

综合各方面考虑,ACK One 当前选择以 Ingress API 的方式来支持多集群的南北向流量管理。

基于 ACK One 多集群网关实现的同城容灾方案

基于 ACK One 多集群网关可以快速构建多集群应用的同城容灾系统,包括同城多活容灾和同城主备容灾。整体架构如下:

阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统,阿里云,云计算,容器

  • 一个地域两个不同可用区(AZ 1 和 AZ 2),各创建一个 ACK 集群(Cluster 1 和 Cluster 2)
  • 在 ACK One Fleet 中通过 MseIngressConfig 资源在 Fleet 所在地域、所在 VPC 创建出 MSE 网关
  • 通过 ACK One GitOps 将应用分发到多集群中(已创建的 Cluster 1 和 Cluster 2 集群)
  • 在 Fleet 中通过创建 Ingress 来设置流量规则,支持跨多个 ACK 集群的以下能力:
  • HTTP routing: 七层路由转发§ 如 header-based 路由:基于 header 将流量路由到指定集群、基于 header 的灰度验证
  • traffic splitting: 根据权重路由流量、A/B 测试、蓝绿部署、金丝雀发布等
  • health-based 自动平滑容灾: 流量在多集群/多可用区自动平滑容灾。某个集群或者集群内某个副本 unhealthy 后,流量会被自动平滑地路由到另一个集群或者其他健康的副本
  • traffic mirroring、基于副本数负载均衡流量等

方案优势

由以上架构,我们可以知道,基于 ACK One 多集群网关的容灾方案,相比于基于 DNS 流量分发的容灾方案具有以下优势:

  • 基于 DNS 流量分发的容灾方案需要多个 LB IP(每个集群 1 个),而基于多集群网关的容灾方案在地域级别仅需要 1 个 LB IP,且默认提供同地域多可用区的高可用性。
  • 基于多集群网关的容灾支持七层路由转发能力,而基于 DNS 流量分发的容灾不支持七层路由转发。
  • 基于 DNS 流量分发的容灾方案在 IP 切换时,通常会有客户端缓存而造成服务短暂不可用,而基于多集群网关的容灾方案则可以平滑地将流量 Fallback 到另一个集群的服务后端。
  • 多集群网关是地域级别的,所以所有操作都仅需在 Fleet 实例中操作(创建网关、Ingress 资源等),无需在每个 ACK 集群中都安装 Ingress Controller 和创建 Ingress 资源,在提供地域级全局流量管理能力的同时,减少多集群管理成本。

基于多集群网关的同城多活容灾

基于多集群网关的同城多活容灾如下图所示:

阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统,阿里云,云计算,容器

  • 在 cluster1 与 cluster2 中存在同名服务(K8s service 的 name 和 namespace 一致),且副本数为 1:1
  • 网关会将流量按照 1:1 的比例路由到 cluster1 和 cluster2 中
  • 当 cluster1 异常时(如副本数变为 0),cluster1 的 50% 流量会被自动迁移到 cluster2,此时 100% 流量会被路由到 cluster2

基于多集群网关的同城主备容灾

基于多集群网关的同城主备容灾如下图所示:

阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统,阿里云,云计算,容器

  • 在 AZ 1 cluster1 与 AZ 2 cluster2 中存在同名服务(K8s service 的 name 和 namespace 一致)
  • 服务以 cluster1 为主,cluster2 为备,默认只有主提供服务,100% 流量会路由到 cluster1
  • 当主异常以后,100% 流量会被自动平滑地路由到备(AZ 2 的 cluster2)

总结

ACK One多集群网关提供了强大的能力,与此同时,结合 ACK One GitOps [ 8] 的应用多集群分发和持续部署能力,可以帮您快速、低成本地构建对多集群应用平滑容灾的同城容灾系统。更多详情可以查看基于多集群网关实现同城容灾 [ 9] 和多集群网关概述 [ 10]

欢迎使用钉钉搜索群号加入我们。(钉钉群号:35688562)

相关链接:

[1] ACK One

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/product-overview/ack-one-overview?spm=a2c4g.11186623.0.0.6f5848b0idmr0L

[2] 多集群网关

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/multi-cluster-traffic-gateway-overview?spm=a2c4g.11186623.0.0.5fd048b0oh9MLf

[3] MSE 云原生网关

https://help.aliyun.com/zh/mse/product-overview/cloud-native-gateway-overview?spm=a2c4g.11186623.0.0.260a3db39PGupl

[4] MSE Ingress

https://help.aliyun.com/zh/mse/user-guide/overview-of-mse-ingress-gateways#task-2193958

[5] MSE Ingress 支持的 Annotation

https://help.aliyun.com/zh/mse/user-guide/annotations-supported-by-mse-ingress-gateways?spm=a2c4g.11186623.0.0.4c074ca8JGvcpx

[6] Kubernetes Ingress API

https://kubernetes.io/docs/concepts/services-networking/ingress/

[7] Kuberentes Gateway API

https://gateway-api.sigs.k8s.io/

[8] ACK One GitOps

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/gitops-overview?spm=a2c4g.11186623.0.0.596377b7htoy5W

[9] 基于多集群网关实现同城容灾

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/use-cases/zone-disaster-recovery-based-on-multi-cluster-gateway?spm=a2c4g.11186623.0.0.54b7681cMIMBoN

[10] 多集群网关概述

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/multi-cluster-gateway-overview?spm=a2c4g.11186623.0.0.c01b6fd6rNopUT

点击此处,查看如何基于 ACK One 多集群网关实现同城容灾。文章来源地址https://www.toymoban.com/news/detail-802129.html

到了这里,关于阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 阿里云——容器服务ACK

    助力企业高效运行云端Kubernetes容器化应用 容器服务 Kubernetes 版(简称 ACK)整合了阿里云虚拟化、存储、网络和安全能力,为您提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。 阿里云是全球首批通过 Kubernetes 一致性验证的服务提供商,为您

    2023年04月08日
    浏览(41)
  • 深度吐槽阿里云ack服务

    算是一个腾讯云深度用户,用了78年左右,由于业务需求,今年五月份开始逐步在阿里云跑了一些服务。不吹不黑。发自内心的吐槽一下阿里云的ack服务。其他服务没有多大发言权。都差不多。但是作为一个算是比较早期的kubernetes用户有必要吐槽一下阿里云的ack服务,没有办

    2024年02月06日
    浏览(34)
  • 合泰HT32F52352入门教程(# 1W+字 博客帮您快速上手,拿奖不是梦 #)

    这篇文章适合已经有单片机基础,比如STM32。熟悉STM32库函数(标准库最好,HAL库要适应一下手写配置) 这篇文章的代码均经过本人烧写验证,帮你快速上手HT32F52352 如果觉得对你有帮助,记得点赞(别老是放在收藏夹里吃灰) 更多有意思的文章点击“我的主页” --------😐

    2023年04月22日
    浏览(45)
  • 阿里云ACK worker节点硬盘扩盘

    1、在控制台选择要扩盘的服务器,进入硬盘并选择扩盘 2、进入盘后点击已备份扩盘 3、选择扩盘方式以及要扩盘的最后大小 4、确认是否按我们的要求扩盘的 5、扩盘分区和文件系统 6、手动扩盘操作 ACK扩盘文档 查看分区情况 如下图: 1:云盘的设备名称 2:云盘是否分区及

    2024年02月10日
    浏览(26)
  • RabbitMQ高级特性解析:消息投递的可靠性保证与消费者ACK机制探究

    学习RabbitMQ高级特性,涵盖消息的持久化、确认模式、退回模式以及消费者ACK机制等方面,助您构建高可靠性的消息队列系统。

    2024年01月16日
    浏览(66)
  • 阿里云ACK的etcd证书过期手工升级操作

    一.问题现象 阿里云ACK的etcd证书过期,通过图形化界面升级提示升级失败,考虑通过脚本的方式升级ETCD相关的证书。由于在前期做类似的升级ETCD证书失败导致整个集群业务出现访问异常,所有在升级之前做好对应的备份操作是很有必要的 二.前期准备 1.由于升级操作是在ma

    2024年02月16日
    浏览(34)
  • 阿里云ACK托管版安装Prometheus并配置kafka告警

    前提条件: 1.已有ACK集群。 一、ACK集群中创建prometheus、alert的持久化的存储类(总共创建2个,步骤一致,名称和挂载的nas盘或者子目录不同而已)。grafana的dashboard持久化通过添加配置文件并打标签实现。 一、在应用市场找到ack-prometheus-operator,点击进入后选择\\\"一键部署\\\"。  二、

    2024年01月22日
    浏览(41)
  • 阿里云ACK(容器服务)+ElasticWorkload弹性负载+HPA弹性伸缩实践

    阿里云ACK(kubernetes容器服务),高弹性,高稳定性,低成本解决方案。 通过将ECI服务以虚拟节点的方式接入ACK容器集群,将集群中pod应用的固定量调度到现有的ACK容器服务的ECS node节点上,将集群中pod应用的弹性量通过ElasticWorkload组件调度的ECI服务的虚拟节点上。 以ACK容器服务

    2024年02月11日
    浏览(49)
  • 阿里云国际版旗舰级分销商-容器服务 ACK介绍

    阿里云国际版 容器服务Kubernetes版,简称容器服务ACK,是全球首批通过Kubernetes一致性认证的服务平台,提供高性能的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理,让您轻松高效地在云端运行Kubernetes容器化应用。 ACK包含了专有版Kubernetes(Dedicated Kuberne

    2024年02月12日
    浏览(62)
  • 基于容器平台 ACK 快速搭建 Stable Diffusion

    作者:子白 本文介绍如何在阿里云容器平台 ACK 上快速搭建一套可对外提供服务的 Stable Diffusion。 前提条件 已创建 Kubernetes 托管版集群。具体操作,请参见创建 Kubernetes 托管版集群[1]。 📍无需 GPU,节点需要 8c16g 以上 已通过 kubectl 连接 kubernetes 集群。具体操作,请参见**通

    2023年04月24日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包