本文整理自先河、予栖和路先在2024云栖大会的演讲
很高兴在2024云栖大会容器计算专场,给大家分享容器服务的新产品体验,本次分享,我们聚焦容器服务是如何通过智能、托管、弹性的产品新体验,来助力客户拥抱智算时代的。
有这样几组公开的开发者调研数据和大家分享,来自 Cloud Native Computing Foundation Annual Survey 2023的数据,Kubernetes开源项目Start数量最近两年以来仍旧快速增长,这表明Kubernetes 正在持续变得更加流行,尤其是GenAI火热的最近这 22个月以来。另外两个数据是来自2023中国开发者调查报告,可以看到受访者有84%正在使用或评估 Kubernetes,还有一个就是67%的受访者正在使用阿里云提供的容器服务,这也正是让我们比较自豪,更感到肩膀上的重要责任。
这些客户之所以选择阿里云容器服务,主要还是因为以下几点,低门槛的全托管服务,和阿里云全面的、更深度的集成,以及与社区的完全兼容性,并保持了可扩展能力。
这是我们在阿里云提供的产品组合,整个产品家族面向飞天技术底座的所有基础设施形态,提供了完善完整的容器服务产品形态,包括了面向公共云提供的ACK Kubernetes容器服务,以及我们刚刚商业化发布的ACS容器计算服务,面向边缘场景提供的ACK Edge边缘容器,面向专有云我们提供的ACK专有云企业版,包括面向客户IaaS或三方云提供的ACK Distro发行版。
在上层,我们围绕多集群分布式云场景,提供了统一集群管理、资源调度、数据容灾迁移备份以及应用交付的ACK One分布式云容器平台,包括面向容器应用的网络及流量治理使用场景的服务网格ASM,以及容器制品中心ACR容器镜像服务。
通过完善的容器产品家族,我们服务了千行百业的客户的主流使用场景,包括了在线交易、web类应用,AI/ML训推及数据分析工作负载,企业的应用架构现代化,以及分布式的系统,服务了如刚刚过去的巴黎夏季奥运会子弹时间等云上应用场景,以及其他汽车领域的小鹏、极氪,天天在使用的小红书、Kimi助手等等,还有AI for Science的深势科技,量化的汇量,游戏领域的米哈游,以及今天即将分享实践的作业帮等等客户。
在GenAI时代,我们看到生成式AI应用的训练和推理几乎是100% built on K8s,我们也看到了生成式AI 对基础设施服务提出了很多挑战,包括规模、效率、性能这几个维度,需要提供极致的Infra。更强的算力需求、更高的稳定性要求,以及为了响应市场而更快的创新和迭代交付效率。通过基于容器的云原生架构,能够实现资源的统一调度和更高利用率的弹性,生产工作流实现automation,以及实现多个角色的协同加速开发迭代。
今年刚好是Kubernetes开源项目的十周年,正如前面开始提到的它正在被广泛地采纳,同时,我们在支持客户的过程中也看得到其在客户侧的使用门槛,依然存在技术复杂度高,专业人才招聘困难,以及系统规划的风险。为了应对和解决这些问题,我们提出了智能、托管和弹性的新体验。
弹性:更快速、更灵活、更易用的算力供给
这一页我们分享一下Serverless容器的新发布,容器计算服务ACS,这款产品是去年云栖我们推出邀测,上个月我们推出商业化的。提供了极致简化的算力类型,将在VM ECS的上百种不同代系规格,简化为通用型和性能型,算力质量我们提供了通用型相同服务质量的Best-effort算力质量,但是其2折的定价,以支持拥有容错场景的工作负载,提供极致的性价比。
在ACS,我们提供了核心的组件托管,包括提供自动化的升级通道,以及高性能和高可用调度,提供更灵活的弹性策略HPA、CronHPA、AHPA,还有完善的可观测和成本洞察及优化能力。支持用户的自有工作负载以及使用的云产品负载,EMR on ACS也是今年云栖大会发布的集成场景。
前面我们分享了Serverless容器场景,那面向工作负载,我们今年也是提供了智能的应用弹性能力,提供基于应用过往工作负载画像的容量分享、趋势和时序预测能力,来辅助提供应用的弹性策略配置支持。提供25%的弹性灵敏度提升,平均降低20%的资源浪费,像辅助驾驶一样帮助工作负载简化弹性配置。
面向K8s集群的工作节点,我们今年也是推出GA正式发布的即时弹性能力,提供面向Pending Pods的事件来实现多规格族的动态库存感知和供应,使得整个的弹性效率加速在30s以内实现节点就绪,通用规格的99.9%响应率,并且实现库存变化即时感知,最终让节点维度的弹性扩容体验更加优化,并且支持供给策略扩展、调度策略扩展以及生命周期管理的扩展。
托管:打造更易用的Kubernetes服务
托管二字,意味着阿里云为客户承担更多运维职责。我们的愿景是让您更加专注业务创新,由阿里云来交付、运维专业的Kubernetes环境。接下来我来介绍今年在托管层面的新进展。
我们提到了交付专业的Kubernetes,那么什么算专业水准?参考了广泛的资料后,我们发现应用 Kubernetes集群的专业水准是可以度量的,通过一套成熟度框架。在这个成熟度框架之中,我们可以从架构设计、自动化运维、可观测性、安全、开发接入几个方面评估。
架构设计:包含集群选型、业务连续性设计等核心考量
自动化运维:如何创建、升级一个集群,如何完成集群的运维管理,如何评估集群的容量以及如何管理
可观测性:如何实践 FinOps,如何实践可观测性三要素
安全:如何设计集群的鉴权、授权体系,如何管理应用密钥,如何发现、修复安全漏洞
开发接入:如何设计从应用开发到部署上线的流程,如何部署云原生制品(例如容器镜像、Helm Chart 等)
以架构设计这个模块为例,我们看看具体需要关注什么内容?当一个初学者第一次使用Kubernetes集群时,他首要关注的就是集群选择是自建还是托管,可能不会关注业务的需求,也不会关注未来的业务增长,提前做一些容量规划等等。当然他慢慢成长到一个专家水平的时候,再一次对集群进行选型时,他会去做更加全维度的一个评估。首先是除了自建、托管以外,还有很多Serverless的产品形态可供选择,像阿里云上面的SAE、FC等产品。他会结合 Serverless的产品形态综合地设计业务部署方案,实现更高的弹性能力,或者更高的性价比。除此之外,还有发行版的选型,是多租还是独占集群,节点的机器规格选择,订阅方式选择,等等。集群的选型仅仅是一个方面,另外还有业务连续性的考量,我们今天看到越来越多的客户选择多云混合云策略、也在积极应用控制面、数据面、业务的高可用最佳实践。
以上这些是方法论,是否我们给到大家就可以实施了呢?
其实具体到实施环节,其实需要付出的远比想象的多。我们走访了非常多客户,自建Kubernetes集群的客户,往往都是阿里云上开销非常大的大客户,他们组建了专业的容器团队,以及制定了一系列策略规范以保证K8s集群持续支撑业务发展。这对于我们只是想要用容器进行快速创新的人来说,付出的代价太大了。
在阿里云之上,运维Kubernetes集群这种专业的事情可以交给容器服务产品来做,我们提供了ACK托管集群这种集群形态,它将原本您需要自行设计、部署并持续运维的Master控制面组件托管在阿里云侧,在数据面提供一系列算力接入和批量运维能力,与底层基础设施和阿里云产品生态深度集成,一起提供企业级水准的Kubernetes托管服务。ACK Pro集群支持 99.95% SLA,最大支持15000节点,能够支撑企业生产环境大规模应用。
ACK托管集群的创建非常简单,我们为您提供开箱即用的最佳实践,在年底前我们将发布大幅简化的集群创建流程,支持30多项默认最佳实践配置,支持集群的快捷创建。
ACK托管集群的控制面由ACK管理,流量控制、版本管理、水位容量,都可以通过自动化的手段完成,最大程度简化运维复杂性。今年我们增强了K8s集群版本自动升级能力,客户可以选择Stable、Rapid等不同的升级渠道完成自动升级,同时支持了更为灵活的维护周期策略,支持按月规划维护。
当然,托管二字不仅限于控制面,对于数据面的算力资源,我们提供灵活易用的批量运维能力,我们提供了批量配置管理、故障发现自愈、安全漏洞修复等多种能力,今年我们发布了OS内核参数、Kubelet参数批量控制台变配能力,发布了对Ubuntu、RHEL的全面支持,即将上线对ECS主动运维事件的联动,降低因底层资源风险导致的业务风险。经过一系列的优化,今年批量节点运维耗时、节点初始化耗时均有显著的下降。
除了控制面、数据面等计算资源,K8s基础设施中最为重要的无非就是系统组件了,系统组件承担了您上层业务如何与K8s、云资源进行交互。近几年我们一直在把更多系统组件托管化运行,降低您对K8s系统组件的运维负担,托管后的组件对您还是有一致的使用体验,还是有可配置性,还是有可观测性,但系统组件的版本升级、异常自愈、高可用调度等运维操作,均由ACK负责完成。今年我们发布了节点池弹性扩缩容组件、存储组件的托管化,支持了CoreDNS 自定义参数配置。接下来我们将持续支持更多的组件托管化,让您将更多精力放在业务创新上。
容器的安全在K8s成熟度框架中也有体现,安全设计是应用Kubernetes到生产环境中必备的一环。我们联合容器安全专家、云安全中心、操作系统等团队,结合其产品能力,提供了全生命周期、全维度的默认集群安全设计。
智能:AIOps新体验
背景
提到智能,很多人首先想到的就是“大模型”。近年来,随着大模型的快速发展,不同领域的大模型应用层出不穷,尤其在专家系统、大数据处理等方面,表现出色。
在去年云栖大会上,ACK在AIOps领域推出了大模型应用——容器服务AI助手,旨在提升客户的运维效率。经过一年的不断迭代,AI助手已经实现了功能的全面升级。
今天,我想和大家分享,升级后的AI助手为我们的AIOps带来了哪些全新的体验和价值。
在介绍我们的AI助手之前,我想先回顾一下推出这一产品的初衷,以及它能够为我们带来的益处。
近年来,随着越来越多的用户在生产环境中采用Kubernetes进行业务部署,面临的挑战也随之增多。例如,在选择和验证K8s组件时常常感到困惑,也会遭遇合规性和可用性、安全漏洞等等问题。
根据最新调研,有超过60%的受访者希望通过AIOps提升服务和应用的可用性及性能。尤其是希望AI技术能够帮助解决以下几个关键问题:验证和优化配置、识别安全风险、问题诊断、监控/异常发现等。
正因如此,我们推出了AI助手这一AIOps产品,旨在大幅提升日常运维的效率与效果。
容器服务AI助手
那么AI助手都提供了哪些功能呢?AI助手今年实现了全面升级,涵盖集群构建、运维、优化和安全四个重要领域。
集群构建
集群规划:AI助手提供集群规划功能,在创建集群页,能够基于客户现有配置和ACK的专家经验,给出配置优化建议,辅助客户创建安全、高可用的集群。
辅助生成:AI助手提供多种场景的辅助生成能力,比如Terraform代码的生成,K8s YAML的智能生成、智能优化等等。
集群运维
智能诊断:去年我们推出了集群诊断能力,在今年我们对诊断的异常场景做了更多的覆盖,在“智能诊断”部分有更加详细的介绍。
智能体检:通过智能体检能力,AI助手能够实时感知集群的潜在风险,从而预防稳定性隐患。
集群优化
集群与应用优化:AI助手会结合当前的配置、资源使用情况等数据提出优化建议,例如当资源负载过高时,会建议进行节点或应用的伸缩等等。
成本优化:AI助手基于ACK成本套件,为用户提供成本优化建议,帮助识别闲置资源,调整YAML requests/limits配置以提升资源利用率。
集群安全
集群安全分析:AI助手推出了全面的集群安全分析功能,涵盖CVE漏洞风险、运行时风险及安全策略等分析。
应用安全分析:AI助手还可针对应用层面的安全风险进行评估,例如是否存在容器逃逸或共享主机命名空间等问题。
集成
上述的全部功能均能够通过标准的OpenAPI进行集成,我们还提供了一些三方的接入方式,比如钉钉机器人等。
经过增强的AI助手在多个关键指标上取得显著提升,如应答文档采纳率超过50%,内容采纳率超过40%,诊断成功率超过80%,根因定位率达到70%以上。
接下来,将从Day 0到Day 2,直观展示AI助手如何在运维全生命周期中为我们提供支持。
Day0 - 辅助集群架构设计
对于控制台用户,他们可以在集群创建页面轻松唤起AI助手,快速分析当前的集群配置。基于ACK的专家经验,AI助手将从稳定性、安全性、性能和网络等多个维度提供优化建议。此外,用户还可以通过控制台的划词功能,便捷地调用AI助手来解释选中的字段,帮助用户了解。
非控制台用户同样能受益于AI助手。它可以辅助生成包括Terraform等在内的基础设施即代码(IaC),大大简化集群资源配置的编排过程。
通过AI助手的支持,集群部署的效率显著提升,让用户可以更专注于业务发展而不是繁琐的配置细节。
Day1-K8s YAML智能生成及分析
在集群创建后,用户常常面临着部署生产环境应用的挑战。编写一个生产可用的应用YAML定义通常需要深入了解Kubernetes,需要大量的学习和经验沉淀。为了解决这一问题,AI助手提供了两大核心能力:YAML生成和YAML优化。
YAML生成:AI助手可以从零开始创建YAML文件,或在现有的Deployment、StatefulSet等基础上,快速生成所需的Service、VPA等配置。这一功能能够帮助用户高效创建符合生产标准的资源定义。
YAML优化:针对用户已存在的YAML文件,AI助手还能提供优化建议,确保配置的最佳实践得以应用。这包括资源限制、健康检查、自动扩缩容等最佳实践的融合。
AI助手通过高级的领域强化大模型,结合Kubernetes的普遍经验及ACK领域的专业知识,可以通过chatops方式与用户进行即时交互,快速给出符合生产要求的应用定义。这将显著缩短用户的应用部署时间,降低学习曲线。
如果用户在第一次交互中没有得到理想的结果,AI助手支持多轮对话,可以持续调整和完善,直至满足用户的具体需求。借助AI助手,用户将能够迅速掌握 Kubernetes应用部署的技巧,轻松迈出生产环境的第一步。
Day 2-业务规模化阶段
在发布第一个线上版本后,我们逐渐意识到集群偶发异常和故障的处理速度有待提高,同时缺乏长效机制以降低故障风险。除了稳定性方面的考虑,安全性也让我们倍感压力,期望能够深入了解集群的安全风险状态。随着业务的扩展,成本管理变得愈加重要。
为了满足客户在稳定性、安全性和成本这三个关键领域的关注,AI助手提供了针对性的功能支持。
稳定性
智能体检
为了提升集群的稳定性,我们引入了智能体检功能。这一功能能够在问题发生之前,提前识别出潜在风险并进行处理,从而预防重大故障的出现。
要实现这一能力,我们进行了大量的数据采集与分析。我们的数据源包括可观测性数据、FinOps与安全套件、集群巡检等,结合ACK的20多个领域检查项,运用增强型大模型进行深入分析。
用户只需简单点击控制台上的智能体检按钮,即可快速启动体检程序,系统将自动生成全面的集群风险分析报告。报告内容包括:组件版本是否需要升级、配额是否充足、资源使用情况是否存在风险等重要信息。这种便捷的操作让用户能够更轻松地维护集群的稳定性。
智能诊断
当然除了事前的体检,事中诊断也是非常的重要,在去年我们提供了K8s工作负载的诊断,比如常见的deployment、statefulset等等。
今年我们对诊断的场景做到了更全面的异常场景覆盖,主要有几个:
API调用的诊断:比如控制台对于一些云产品API的调用错误,会有弹窗提示,针对这些API调用错误,我们提供了对API的诊断能力,告知客户问题产生的原因以及优化的建议。
集群日志分析:会提供错误的日志的一键分析能力,针对的的是集群的异常日志。
管控任务的诊断:因为ACK目前提供的运维操作更多的是基于任务维度的,因此失败的任务也需要有诊断的能力。
集群报警诊断:因为用户通常收到告警以后,登陆控制台第一个看的就是告警的历史,我们也是对报警的页面进行了覆盖。
组件的诊断:因为ACK其实有非常多的组件,而客户很难对这些组件都非常的了解,因此我们还提供了组件的诊断能力,当组件安装、升级、变配失败以后,会有诊断的能力。
同样的所有这些诊断覆盖都有控制台的按钮透出,能够一键唤起AI助手进行诊断,帮助客户快速定位并发现解决集群问题,类似于这样的诊断能力,能够大大减少用户的问题排查时间,因为当故障产生时往往是很慌的,那么AI助手就是能很好的辅助到我们的工具。
安全
智能安全分析
智能安全分析旨在为集群整体提供安全风险透出。包含一下几个方面:
容器镜像安全扫描:由于镜像是Kubernetes生态的基础,其安全性至关重要。例如,依赖的Java库可能存在漏洞,类似于曾引起广泛关注的Log4j漏洞。
安全策略辅助配置:Kubernetes提供了多种安全策略来确保Pod的部署和更新过程安全可控。当Pod不符合设定规范时,将被预设规则拦截。鉴于安全策略的复杂语法,我们推出了AI助手,帮助用户简化安全策略规则的编写过程。
集群节点CVE检查:AI助手能够识别集群节点中的CVE漏洞,分析这些漏洞的详细信息,评估其对集群的潜在影响,并提供明确的风险报告。此外,我们增加了便捷的操作跳转功能,用户可以迅速链接到目标节点池,以便进行CVE修复。
工作负载配置风险扫描:该功能将对集群中工作负载的安全风险进行全面评估,例如,检查是否配置了就绪和存活探针,以及是否存在提权风险。
集群运行时风险监控:该功能监控宿主机是否受到入侵,以及是否存在恶意程序的运行情况。
通过大模型驱动的安全分析能力,我们将为您提供详尽的自然语言安全报告,帮助用户快速发现集群安全风险,并提供一键跳转的解决方案,便于快速实施修复操作。
成本
客户选择上云和使用Kubernetes(K8s)的主要原因之一就是降低成本。在确保稳定性和安全性的基础上,成本优化显得尤为重要。为满足这一需求,我们提供了应用和集群的双重成本分析能力。
我们的解决方案依托当前可观测性数据以及ACK成本套件,能够为用户提供精准的成本优化建议。其中包括:
资源配置优化:通过集成资源画像功能,我们帮助用户找到更合适的资源请求(request)和限制(limit)配置,以实现更合理的资源分配策略。
闲置资源检测:我们检查包括ECS、SLB和EIP在内的各种资源的占用情况,分析后提供闲置资源清单,以帮助用户减少不必要的开支。
借助智能分析技术,客户能够快速识别并解决集群中的成本浪费问题,提升整体运营效率。
以上是AI助手的主要能力升级,希望大家能够充分体验这些新功能,感受它为您的业务带来的便利。谢谢大家!
诚邀共建
阿里云容器团队诚招【开发&SRE】【产品经理】【PDSA】- 杭州、北京、深圳的岗位均可,欢迎大家帮助推荐。