建设厅电工证查询网站,wordpress验证密码,如何优化网页,软件开发中以下模型哪些不是采用云布道师
近日#xff0c;阿里云分布式云容器平台 ACK One[1]发布“多集群网关”[2]#xff08;ACK One Multi-cluster Gateways#xff09;新特性#xff0c;这是 ACK One 面向多云、多集群场景提供的云原生网关#xff0c;用于对多集群南北向流量进行统一管理。
基于 …云布道师
近日阿里云分布式云容器平台 ACK One[1]发布“多集群网关”[2]ACK One Multi-cluster Gateways新特性这是 ACK One 面向多云、多集群场景提供的云原生网关用于对多集群南北向流量进行统一管理。
基于 ACK One 多集群网关可以快速构建多集群应用的同城容灾系统帮助企业以更简单、高效的方式为应用数据的连续性和可用性提供保障。
为什么需要同城容灾
由于故障的多样性和不确定性在一些极端情况下如发生断网断电、火灾、地震等需要保证应用和数据的高可用因此需要容灾方案目前云上容灾主要分为三类 同城跨 AZ 容灾 跨地域容灾 两地三中心
同城容灾包含多活和主备同城中心之间物理距离较近网络延迟低可防范 AZ 级别性质的灾难损害如火灾、发生断网断电等跨地域容灾则网络延迟相对较高但可防范地域性质的灾难损害如地震、水灾等两地三中心则将同城双中心和跨 Region 灾备结合起来兼具了二者优点适用于应用与数据连续性和可用性要求高的场景。
而从实际情况考虑同城容灾相比于跨地域容灾在数据容灾方面容易实现得多所以同城容灾仍然具有非常重要的意义。
现有同城容灾方案及问题
在 K8s 集群中的应用现有的同城多可用区/多集群容灾的方案基本都是基于 DNS 和多个 Ingres Controller 来实现一般架构图如下所示 虽然在 DNS 与 SLB 之间可以增加类似于全局流量管理GTM等一些网关功能类产品来支持用户就近接入、高并发负载均衡、健康检查与故障切换等能力完善容灾方案但现有的基于 DNS 的容灾方案仍具有一些问题 基于 DNS 的方案无法支持七层路由转发 基于 DNS 的方案在 IP 切换时候通常会有 Client 端缓存而造成服务短暂不可用用户体验有所影响 基于 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 资源提供地域级全局流量管理能力的同时也减少了多集群管理的成本。 关于 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 多集群网关可以快速构建多集群应用的同城容灾系统包括同城多活容灾和同城主备容灾。整体架构如下
一个地域两个不同可用区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 资源在提供地域级全局流量管理能力的同时减少多集群管理成本。
基于多集群网关的同城多活容灾
基于多集群网关的同城多活容灾如下图所示
在 cluster1 与 cluster2 中存在同名服务K8s service 的 name 和 namespace 一致且副本数为 1:1网关会将流量按照 1:1 的比例路由到 cluster1 和 cluster2 中当 cluster1 异常时如副本数变为 0cluster1 的 50% 流量会被自动迁移到 cluster2此时 100%流量会被路由到 cluster2
基于多集群网关的同城主备容灾
基于多集群网关的同城主备容灾如下图所示
在 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?spma2c4g.11186623.0.0.6f5848b0idmr0L [2] 多集群网关
https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/multi-cluster-traffic-gateway-overview?spma2c4g.11186623.0.0.5fd048b0oh9MLf [3] MSE 云原生网关
https://help.aliyun.com/zh/mse/product-overview/cloud-native-gateway-overview?spma2c4g.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?spma2c4g.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?spma2c4g.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?spma2c4g.11186623.0.0.54b7681cMIMBoN
[10] 多集群网关概述
https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/multi-cluster-gateway-overview?spma2c4g.11186623.0.0.c01b6fd6rNopUT