基于 ACK One 实现简单的跨云协同,让业务管理更高效

news2024/11/20 13:30:08

作者:庄宇

本文根据 2023 云栖大会现场分享实录整理

图片

2 年前的云栖大会,我们发布分布式云容器平台 ACK One,随着 2 年的发展,很高兴看到 ACK One 在混合云,分布式云领域帮助到越来越多的客户,今天给大家汇报下 ACK One 2年来的发展,如何帮助客户解决分布式领域多云多集群管理的挑战。

首先我们会介绍下分布式云容器平台 ACK One 的背景与架构,之后详细介绍 ACK One 各个功能与应对的业务场景,包括注册集群、边缘集群、多集群舰队、全托管 Argo 工作流集群。

Part 1:分布式云容器平台 ACK One,解决企业多云多集群管理挑战

图片

我看下 ACK One 这个产品出现的背景,Gartner 报告中预测到 2025 年,50% 的大型企业将通过分布式云实现业务转型,在 Forrester 报告中,未来 89% 的企业至少使用两个云,74% 的企业至少使用三个云。在 ACK 的用户中,我们也看到同样的趋势,越来越多的用户选择多云多集群架构,来应对业务发展带来的挑战。

可以说,分布式云已经成为新常态。同时 Gartner 报告中指出,安全,运维复杂性,财务复杂性是多云多集群架构的主要挑战。

为了应对分布式云带来的挑战,我们构建了分布式云容器平台 ACK One。

图片

ACK One 提供多云多集群管理解决方案。ACK One 可以统一接入不同形态\不同位置的 K8s 集群,例如:公共云 ACK 集群,边缘集群,本地数据中心中的集群,和第三方公共云集群。接入后,ACK One 提供云上云下一致的运维体验包括:监控日志、成本分析、安全加固、备份容灾、微服务治理等。极氪汽车使用 ACK One 统一管理多个 K8s 集群,提升了安全水位和业务连续性,减少 25% 的资源用量,运维效率提高80%。

为了解决本地数据中心弹性不足,无法应对业务高峰的问题,ACK One 支持云上弹性,将云上无限算力接入到本地数据中心 K8s 集群中,并实现云上云下混合调度。智联招聘使用 ACK One 云上弹性能力,5 分钟实现业务数万核扩容,应对招聘季业务高峰。

同时,ACK One 支持多集群舰队管理,提供一个控制面管理多个 K8s 集群,提供统一应用分发、南北流量管理、统一运维管理等能力。

Part 2:ACK One 注册集群:接入和管理不同形态K8s集群

下图展示的是 ACK One 注册集群的架构,我们可以将三方公共云中的 K8s 集群和本地数据中心的自建 K8s 集群接入到 ACK One 注册集群中。

图片

首先,您要有一个 K8s 集群,之后在 K8s 集群安装注册集群的 agent pod,Agent pod 会反向连接 ACK One 注册集群服务端并完成管控通道的建立,之后,ACK One 注册集群管控可以下发 K8s API 请求,并通过 Agent pod 的中转到自建 K8s 集群的 API Server 中。从而通过 ACK One 注册集群,可以获得云上云下一致的运维体验。

具体来说包括: ASM 服务网格,微服务引擎 MSE,Prometheus 监控,ARMS 应用性能监控,SLS 日志,安全,FinOps。以上所有云上 ACK 集群具备的能力,都可以通过注册集群在三方公共云 K8s 集群和自建 K8s 集群中落地实现。

另外,为了应对本地数据中心资源不足,无法应对业务流量增长的问题,ACK One 注册集群支持云上弹性,可以将云上的 ECS/ECI 计算资源,包括 CPU 和 GPU 资源,加入到自建 K8s 集群中,由自建 K8s 调度云上资源,应对业务流量增长。

可以说,您依然完全控制自建 K8s 集群,同时,获得了云上 ACK 集群才具有的强大扩展能力。

图片

通过 ACK One 注册集群,可以让阿里云优势的软件和服务实现 Anywhere,不再仅服务于阿里云容器服务 ACK 集群,也可以扩展到本地数据中心自建 K8s 集群,第三方公共云 K8s 集群中。包括:ECS/ECI 等 IaaS 资源,可观测服务,服务治理,FinOps 成本管理,安全等。使用注册集群,您依然完全控制自建的 K8s 集群,但同时获得了阿里云云产品带来的扩展能力。

图片

场景 1: 云上弹性,通过云上弹性,我们可以将云上的计算资源加入到本地数据中自建 K8s 集群中,应对业务流量的增长。同时,注册集群调度器支持对不同计算资源设置不同的调度优先级,例如:可以优先调度本地数据中心中的节点,当本地数据中心资源用尽后,调度使用云上的按量计费节点池 ECS,或者使用云上 Virtual Node 弹性容器实例 ECI 处理业务流量。在充分使用本地计算资源后,再使用云上资源,节省成本。

图片

场景 2: 可观测性。通过注册集群,可以将 ACK 集群的可观测能力,包括监控/日志/事件/告警,下沉到自建 K8s 集成中,一套可观测方案,同时用于容器服务 ACK 集群,自建 K8s 集群,三方公共云 K8s 集群,实现云上云下一致的运维体验。

图片

容器服务 ACK 集群具有强大的安全管理能力,包括配置巡检、运行时安全检查和策略管理。通过注册集群,可以将 ACK 集群的安全能力,下沉到自建 K8s 集群和三方公共云 K8s 集群中。通过一个安全大盘,查看管理所有集群的安全风险,提高安全水位。

图片

在成本治理方面,容器服务 ACK 提供完整的方案,支持以集群、命名空间、节点池、应用多角度的成本洞察,基于洞察结果实施成本的治理,包括浪费发现、成本预测、预算告警等。通过注册集群,可以使用 ACK 集群的成本管理能力,分析和治理自建 K8s 集群和三方公共云 K8s 集群,降低成本。

图片

场景 5: 应用与数据的备份恢复,通过注册集群,可以使用云上数据备份与恢复能力,备份自建 K8s 集群和第三方公共云 K8s 集群中的应用与数据,并在 ACK 集群中恢复 ,实现跨地域的应用与数据容灾。

图片

场景 6: 混合云跨云数据访问。为了应对存算分离架构带来数据访问接口类型多和访问速度慢的问题,通过注册集群和 ACK Fluid 组件,可以通过标准 PV/PVC 接口实现云上计算实例访问云下自建存储资源,也可以通过 Fluid 分布式缓存加速云下计算资源访问云上 OSS 对象存储,缩短 GPU 等高成本计算资源的等待时间,提高了运行速度,降低计算成本。

图片

阿里云提供强大的微服务治理能力,包括微服务引擎 MSE 和服务网格 ASM,通过注册集群的控制面连接,云上 MSE 和 ASM 可以管理三方公共云和本地数据中心 K8s 集群中的微服务。实现一套微服务方案,管理所有集群的微服务,降低运维复杂度,提高了稳定性。

Part 3:ACK Edge 边缘集群:接入和管理边缘计算资源

边缘集群 - 接入和管理边缘计算资源下面我们介绍一下边缘集群,边缘集群可以接入和管理边缘的计算资源,也就是机器和各种终端设备。您可以在云上创建边缘集群,并将边缘的机器和设备远程接入云上集群,实现通过标准 K8s 集群的方式调度使用这些机器和设备,从而省去在边缘自建集群的成本。

图片

下面我们看下边缘集群的架构,上半部分是边缘集群 ACK Edge 的控制面,在阿里云上,复用 ACK Pro 的控制面(APIServer/ETCD 等),保证稳定性,集成开源 OpenYurt 提供边缘节点自治能力,最后融合了阿里云的日志监控安全能力。下半部分是边缘部分,可以接入管理数据中心或者机房中的机器,包括 CDN、IDC、工厂、园区、楼宇等。也可以接入各种终端设备,包括车载、交通设备等。

淘麦郎使用边缘集群 ACK Edge,提供验票服务,人均验票时间缩短 70%,成功服务了北京冬奥会和杭州亚运会等大型赛事;影石使用边缘集群 ACK Edge,管理工厂中的计算设备,从云端直接下发指令到达工厂,极大提高了生产效率。

图片

OpenYurt 是业界首个非侵入的云边协同的云原生平台,在中间的架构图中可以看到,master 组件部署在云端,可以方便的管理分散的边缘机器和设备。图中蓝色框是原生 K8s 组件,橙色框中表示的是 OpenYurt 组件。OpenYurt 没有对 K8s 做任何修改,保证 OpenYurt 很容易集成与被集成 。OpenYurt 的核心能力主要 4 个方面,多地域应用管理,边缘自治,跨地域网络通信,以及云原生设备管理。

Part 4:ACK One 多集群舰队:统一管理多个 K8s 集群

之前讲到的注册集群和边缘集群解决了各种形态位置的集群和边缘计算资源接入到云上的问题。

图片

下面我们介绍,当我们有多个 K8s 集群的时候,如何统一管理,就要 ACK One 多集群舰队。

首先我们看下多集群舰队的架构,多集群舰队集成使用开源 Open Cluster Management,统一管理多个 K8s 集群,可以是公共云的 ACK 集群,本地数据中心 K8s 集群。多集群舰队对用户提供统一的控制面,提供应用分发,流量控制,安全策略,全局监控等多集群管理能力 。

图片

我们来看多集群的应用分发,多集群舰队托管了开源 ArgoCD 提供 GitOps 应用分发能力,开发团队可以通过在 Git 中定义应用部署 yaml 文件,实现应用的多集群部署。

使用 GitOps 具有强可靠性。Git 作为部署的唯一来源,提供了版本控制、回滚和审计能力。同时开发人员也不需要任何 K8s 集群的权限, 安全性高。最后,GitOps提供持续部署的能力,保证集群中应用的状态和 Git 仓库中定义的状态一致,避免误操作,保证稳定性。

ACK One 多集群 GitOps 在此基础上,提供了原生 ArgoCD 的 CLI 和 UI 体验,并提供专属的 ArgoCD 控制台域名,集成阿里云账号 SSO,支持多用户权限等。

图片

基于 ACK One GitOps 实现多集群 CICD 流程。在流程图中,我们首先向业务代码仓库提交代码修改,之后由 ACR EE 或者全托管 Argo 工作流集群构建并推送镜像到 ACR EE,ACK One GtiOps 检查ACR EE中镜像版本的变更,并回写到应用部署仓库,也就是修改部署 yaml,ACK One GtiOps 自动向 Dev 集群部署新的镜像版本,在验证通过后,在维护窗口可以手工向生产集群部署。实现了从 CI 到多集群部署的完整 CICD 流程。

图片

下面我们来看多集群南北流量管理,为了保证应用的容灾,我们一般会在不同可用区的 2 个集群部署相同的应用,并在前端部署负载均衡,传统的负载均衡一般会采用智能 DNS 的方案或者 4 层 LoadBalancer 方案,但 DNS 方案的问题在于客户端缓存,导致在问题发生时,切换不及时,造成业务损失。4 层 LoadBalancer 无法实现基于 7 层的路由转发,灵活性差。

为了解决这个问题,我们推出多集群网关,提供全局 Ingress,实现七层的负载均衡,多集群网关本身也支持跨可用区的高可用。因为是七层的网关,我们可以灵活的定制路由,实现基于权重、http header、自动 fallback 的路由策略。通过多集群网关,我们可以实现应用同城多可用区多活容灾。在应用完成多集群部署后,我们还需要对应用的状态进行监控,ACK One 舰队管理提供多集群全局监控功能,汇总多个集群的监控指标,提供多集群视角的全局监控大盘。在截图中可以看到,一个大盘可以查看集群 1 和集群 2 的监控指标。

图片

Part 5:全托管 Argo 工作流集群全新发布

最后一部分,我来介绍下全托管 Argo 工作流集群。

图片

随着科技的发展,仿真计算、科学计算等离线作业在企业中的应用越来越多,在云原生领域,如何编排以及高效、低成本运行这些离线作业,是必须回答的问题。

ACK One 推出全托管跨地域 Argo 工作流集群,托管 CNCF 毕业项目 Argo Workflow,使用弹性容器实例 ECI,以无服务器方式在多可用区/多地域调度运行工作流,支持大规模工作流运行的同时降低计算成本。

为了应对 AI 等数据密集性业务和存算分离架构,Argo 工作流集群支持分布式数据缓存,加速文件访问,减少运行时间,降低成本。

此外:全托管 Argo 工作流集群支持:

  • 资源预测 – 通过负载感知自动调整资源规格
  • 规模化计算 – 控制面进行了性能优化支持千级别并发工作流,数万 Pod 并行计算任务
  • 事件驱动 - 支持 Git、阿里云 MNS、OSS 等事件源触发工作流自动运行

相比开源自建 Argo 工作流系统,利用 Serverless 技术,全托管 Argo 工作流集群可实现 30% 的资源成本节省;利用分布式数据缓存,数据读性能提高 15 倍;通过控制面优化和云上极致弹性,最大并行计算规模提升 10 倍。

泛生子使用全托管 Argo 工作流集群在 12 小时内完成处理数千例样本的处理,速度提升 50%,成本下降 30%。

图片

看下分布式 Argo 工作流集群的架构,它托管开源 Argo workflow,提供开源原生的 CLI、UI、API、SDK 等接口,保证现有开源自建 Argo 工作流系统可无缝迁移。同时,可以使用工作流集群的 API SDK 接口,包装工作流集群,构建自己的工作流提交系统,以适应具体的业务场景。我们很多仿真和科学计算客户就是将工作流集群作为后端引擎使用。

工作流集群托管 Argo event 项目,支持事件驱动编程模型,支持 Git、阿里云 OSS、MNS、EventBridge 等事件源触发工作流自动运行,自动完成 CI、数据处理等离线任务。

分布式 Argo 工作流集群使用 Serverless 方式运行工作流,无需运维 worker 节点,利用云上极致算力资源,可实现同时运行数万 Pod 的大规模工作流, 同时提供监控日志等开箱即用的运维体验。

图片

最后,我们简单总结下,分布式云面对的场景多种多样,挑战很多,为此,ACK One 提供注册集群能力,可以将非ACK集群接入ACK One,从而实现云上云下集群统一管理。ACK One 提供边缘集群,实现云上集群管理边缘机器与设备,同时实现边缘自治。

多集群舰队提供多集群 GitOps 和全局 Ingress 实现应用的同城多活容灾。全托管 Argo 工作流集群,实现工作流的编排,以 Serverless 方式运行工作流,降低成本,应对持续集成、科学计算、仿真计算、数据处理等场景。

大家可以根据具体业务场景选择相应的能力,最终实现简单的跨云协同,让业务管理更加高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1332211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Burnside 引理 与 Pólya 定理 学习笔记

为了防止明天就把好不容易听完的东西都还给 rabbit_lb 了,还是记一点吧。 1. 群论基础 1.1 群(group) 的定义 给定集合 G G G 和 G G G上的二元运算 ⋅ \cdot ⋅,满足下列条件称之为群: 封闭性:若 a , b ∈ G a,b\in G a,…

机器学习之实验过程01

import pandas as pd import numpy as np import matplotlib.pyplot as plt data_path = /home/py/Work/labs/data/SD.csv # 请确保您的数据文件路径是正确的 df = pd.read_csv(data_path) df.head() # 创建散点图 # 创建散点图 plt.figure(figsize=(10, 6)) plt.scat…

DDD领域驱动设计系列-原理篇-战术设计

概述 上篇战略设计产出了领域及问题域领域模型;详见:DDD领域驱动设计系列-原理篇-战略设计-CSDN博客 战术设计篇聚焦如何落地,包含实际解决方案模型落地,架构分层(Clean,CQRS),Rep…

基于Qt之QChart 图表(优美的曲线图案例)

## 项目演示 平台:ubuntu18.04 Qt版本:QT5.14.2 源码位置GitCode:https://gitcode.com/m0_45463480/QCharts/tree/main ## QChart 图表 自从 Qt 发布以来,给跨平台的用户带来很多便利。在 Qt5.7 之前,Qt 在开源社区版本里没有 Qt Charts(自带的绘图组件库)。这使得像…

蓝桥杯2020年10月青少组Python程序设计省赛真题

1、设计一个猜字母的程序,程序随机给出26个小写字母中的一个,答题者输入猜测的字母,若输入的不是26个小写字母之一,让用户重新输入,若字母在答案之前或之后,程序给出相应正确提示,如答错5次,则答题失败并退出游戏,若回答正确,程序输出回答次数并退出游戏。 2、试编一个“口…

收到口头offer千万别飘,离发书面offer还有很远!4个口头offer都没通过,血的教训!...

求职时一路过关斩将,终于收到了口头offer,算是稳了吗? 一位打工人给广大求职者一个建议: 当你收到口头offer时千万别飘!因为离最后收到书面offer有很长距离,还有下面这些事要做: 1.提交各种材料…

算法模板之队列图文详解

🌈个人主页:聆风吟 🔥系列专栏:算法模板、数据结构 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. ⛳️模拟队列1.1 🔔用数组模拟实现队列1.1.1 👻队列的定…

第26关 K8s日志收集揭秘:利用Log-pilot收集POD内业务日志文件

------> 课程视频同步分享在今日头条和B站 大家好,我是博哥爱运维。 OK,到目前为止,我们的服务顺利容器化并上了K8s,同时也能通过外部网络进行请求访问,相关的服务数据也能进行持久化存储了,那么接下来…

集简云与语聚AI新增Google Gemini、Gemini Vision两大模型,让对话能力再升级

近日,人工智能又掀起一股热潮,Google最新推出的AI大模型Gemini备受瞩目。号称多模态任务处理能力首次超越人类的 AI 模型,不仅可以处理文本内容,还可以无缝丝滑地处理代码、音频、图像和视频等多种模态的信息。 随着Gemini pro版…

Python patchworklib任意合并子图,多图形混合排版

【背景】 数据展示时,在同一页面上混合排版多个图形是一种常见的用法。本次分享一个Python轮子patchworklib库:通过|、/轻松实现图形排列;比matplotlib、seaborn等自带子图功能更加灵活; 【patchworklib简介】 Patchworklib 是与 matplotl…

IDEA中使用数据库可视化操作工具

文章目录 1.入门介绍2. 没有数据库驱动3. 准备&测试连接3.1测试报错 4.连接5.编写SQL语句 1.入门介绍 在IDEA的专业版的右侧工具栏应该会有DataBase按钮如果没有的同学可以这样操作(必须是IDEA专业版) 新建数据库 2. 没有数据库驱动 如果提示: missing driver files ,…

qt项目-《图像标注软件》源码阅读笔记-类图

目录 1. 开源项目链接 2. 项目界面 3. 项目类图 3.1 形状的绘制及形状的存储 3.2 主窗口中心组件的界面管理 3.3 Command负责实现撤销和重做功能 3.4 其他类 3.5 枚举 3.5.1 Status 主窗口的状态变量 3.5.2 Mode 主窗口模式状态变量 3.5.3 shapeStatus 中心组件状态…

前菜---二叉树+堆的小练习

目录 前言🏜️ 1. 二叉树性质总结⛱️ 1.2 性质3⏰ 2. 二叉树性质小练习🏕️ 3. 答案解析💡 4. 堆概念结构小练习🪔 5. 答案解析🧿 6. 前/中/后/层序遍历小练习🔫 7. 答案解析🧺 后语…

MySQL主从架构及读写分离实战

​​​​​​ 目录 一、实验目的与环境 二、基础环境介绍 三、搭建主从集群 1、理论基础 2、同步的原理 3、搭建主从集群 3.1 配置master主服务器 3.2 配置slave从服务 3.3 主从集群测试 3.4 集群搭建扩展: 3.5、GTID同步集群 4、集群扩容 5、半同步复…

Nessus详细安装-windows (保姆级教程)

Nessus描述 Nessus 是一款广泛使用的网络漏洞扫描工具。它由 Tenable Network Security 公司开发,旨在帮助组织评估其计算机系统和网络的安全性。 Nessus 可以执行自动化的漏洞扫描,通过扫描目标系统、识别和评估可能存在的安全漏洞和弱点。它可以检测…

【数据结构入门精讲 | 第十七篇】一文讲清图及各类图算法

在上一篇中我们进行了的并查集相关练习,在这一篇中我们将学习图的知识点。 目录 概念深度优先DFS伪代码 广度优先BFS伪代码 最短路径算法(Dijkstra)伪代码 Floyd算法拓扑排序逆拓扑排序 概念 下面介绍几种在对图操作时常用的算法。 深度优先D…

【数据结构入门精讲 | 第十四篇】散列表知识点及考研408、企业面试练习(1)

在上一篇中我们进行了树的专项练习,在这一篇中我们将进行散列表知识点的学习。 目录 概念伪代码线性探测法平方探测法查找成功的平均查找长度查找失败的平均查找长度判断题选择题 概念 散列表(Hash Table),也被称为哈希表或散列映…

CogAgent:带 Agent 能力的视觉模型来了

之前我们分享过智谱AI新一代多模态大模型 CogVLM,该模型在不牺牲任何 NLP 任务性能的情况下,实现视觉语言特征的深度融合,其中 CogVLM-17B 在 14 个多模态数据集上取得最好或者第二名的成绩。 12月15日,基于 CogVLM,提…

【小沐学写作】Docsify制作在线电子书、技术文档(Docsify + Markdown + node)

文章目录 1、简介2、安装2.1 node2.2 docsify-cli 3、配置3.1 初始化3.2 预览效果3.3 加载对话框3.4 更多页面3.5 侧 栏3.6 自定义导航栏 结语 1、简介 https://docsify.js.org/#/?iddocsify 一个神奇的文档网站生成器。 简单轻巧没有静态构建的 html 文件多个主题 Docsify…

第11章 GUI Page426~427 步骤七 设置直线前景色

运行效果&#xff1a; 关键代码&#xff1a; 接口类 IItem中新增29,30行两个设置前景色纯虚方法 //item_i.hpp 抽象“图形元素”接口定义 #ifndef ITEM_I_HPP_INCLUDED #define ITEM_I_HPP_INCLUDED#include <wx/gdicmn.h> #include <wx/dc.h>class IItem { publ…