开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:阿里云原生容器服务产品体系-ACK 集群】
课程地址:https://edu.aliyun.com/course/3112075/lesson/19017
阿里云原生容器服务产品体系-ACK 集群
内容介绍
一、阿里云容器服务形态
二、阿里云容器服务的价值
三、三种形态的详细介绍
四、Kubernetes 版本
五、容器服务 ACK 基于 K8S 的增强
六、容器服务 ACK 与自建集群对比
七、容器服务 ACK 产品核心功能
八、容器服务 ACK 应用场景
一、阿里云容器服务形态
上一小节学习了阿里云的云容器服务体系介绍,这一小节介绍阿里云容器服务 Kubernetes 版介绍,阿里云容器服务是全球首批通过 Kubernetes 一次性认证的服务平台,它提供了高性能的容器应用服务管理,包括支持企业级的 Kubernetes 计划应用,生命周期管理。在阿里集团作为核心的容器化基础设施,有着丰富的应用产品和经验积累,面向电商实施音视频服务数据库,消息中间件,人工智能等产品,支持了广泛的内外部客服参加双11活动大促。
阿里云容器服务 Kubernetes 版基于云原生 Kubernetes 进行适配和增强,简化集群的搭建和扩容等工作,底层整合阿里云虚拟化、存储、网络和安全核心能力,打造了云端最佳的 Kubernetes 容器化应用运行环境。
阿里云容器服务产品分为三种形态:
1. 专有 Kubernetes (常说的HK)
2. 托管版 Kubernetes (有两个版本:标准版,HK pro 指的是托管版 Kubernetes 增强)
3. Serverless Kubernetes 版
后面会详细介绍三款的差别分别适用于不同的产品。
二、阿里云容器服务的价值
首先,容器服务是阿里云上的一个云产品,提供了 kubernetes service 的服务能力,面向全球已经实现了在20多个地域的全球化部署支持,提供单元化的快速部署。全球应用的容器镜像快速分发,帮助客户构建全球业务模式。
它具备丰富的弹性时算能力,提升了资源的利用率,降低了网络的消耗率,底层提供灵活的弹性。弹性是云核心能力之一,像双11典型的脉冲型的应用场景,疫情爆发之后,在线教育和协同办公急速增长的场景,只能是依靠云原生强大的弹性能力才能够进行支撑。Kubernetes 可以将云的弹性能力发挥到极致,阿里云容器服务在资源层和应用层都提供了丰富的弹性策略。
基于阿里云整体的架构,可以实现千节点的,分钟级的快速弹性策略。后面会详细讲解阿里云容器服务如何实现灵活的弹性功能。
第四个价值是混合云管理。在一些大企业要考虑数据的主璇和数据的遗失,没有实现将所有的数据都部署到公用云上,需要做到私用云和公用云的混合应用架构。在云原生时代用 Kubernetes 代表的容器服务技术可以评定基础信息差异性,实现以应用为中心的混合云的架构。在此环境中实现对共有云,私有云计算资源的统一调动和统一的应用生命周期管理。这就是阿里云容器服务能够给客户带来的价值。
三、三种形态的详细介绍
阿里云 Kubernetes 容器服务产品分为三种形态,分别是专有版、托班管和 serverless Kubernetes 版,下面通过表格看一下这三种形态。
比较项 |
专有Kubernetes |
托管版Kubernetes |
Serverless Kubernetes |
主要特点 |
需要自行创建Master 节点及Worker
|
只需创建 Worker节点,Master 节点节点。由 ACK 创建并托管。 |
无需创建 Master节点及 Worker 节点 |
核心优势 |
可以对集群基础设施进行更细粒度的控制,需要自行规划、维护、升级服务器集群。 |
简单、低成本、高可用,无需管理 Master 节点。
|
无需管理任何节点,可直接启动应用程序。 |
收费方式 |
集群管理免费,但需要承担 Master 节点、 Worker 节点以及其他基础资源的费用。
|
·标准版: 集群管理免费,但需要承担 Worker 节点以及其他基础资源的费用。 ·Pro版: 按照集群数量或者包年包月方式收费。 |
按容器实例的使用资源量和时长 (秒)计费。
|
应用场景 |
适用于所有场景。
|
适用于所有场景。
|
适用于批量任务、突发扩容,以及CI/CD 测试 |
容量规划 |
需要,支持自动伸缩
|
需要,支持自动伸缩 |
不需要
|
使用场景 |
全场景支持 |
全场景支持 |
突发负载,如,批处理,CICD 任务 |
1、专有版的 Kubernetes
主要特点:需要自行创建 Master 节点及 Worker 节点,相当于提供一台专门的集群供用户配置。核心优势是可以对集群基础设施进行更细粒度的控制,自行规划维护、升级服务器集群。收费方式:集群管理免费,但需要承担 Maste r节点、Worker 节点以及其他基础资源的费用。应用场景:适用于所有场景。容量规划:支持自动伸缩。专有版的 Kubernetes 可以自行的升级相应的 Master节点、Worker节点,根据自己的需求去完成。之后会对不同的产品形态、不同的客户群体进行介绍。
2、托管版 Kubernetes
只需创建 Worker 节点,Master 节点节点。由 ACK 创建并托管。相当于无需自己运维,只需要关心 Worker 节点的运维就可以。核心优势:简单、低成本、高可用,无需管理 Master 节点。
标准版:集群管理免费,但需要承担 Worker 节点以及其他基础资源的费用。
Pro 版:按照集群数量或者包年包月方式收费。
应用场景:适用于所有场景,支持自动伸缩
3、Serverless Kubernetes
无需创建 Master 节点及 Worker 节点,无需管理任何节点,可直接启动应用程序。按容器实例的使用资源量和时长 (秒)计费。使用场景:适用于批量任务、突发扩容,以及CI/CD 测试。
这三种形态各自有各自的优劣势,看一下它适用于哪些用户:
专有版 Kubernetes 需要自行维护 Master节点、Worker 节点。需要对 Kubernetes 技术掌握,才能够掌握 Kubernetes 的基础维护能力。在规划面前需要明确大概多少个节点,Master 节点是否要高可用,应该具备哪些能力。要做Master节点的定制,要完全测管Master 节点及 Worker 节点适用于大型的公司对成本不太敏感并有一定的技术实力,推荐使用专有版的 Kubernetes 。
托管版 Kubernetes (对专有版的 Kubernetes 掌握的不是很好)
更关注上层的业务,而不关注底层的平台,可以简化 Kubernetes
运维的能力,需要关注Master节点的维护和管控。可以帮助企业降低成本,适合初创和中小型企业使用托管版 Kubernetes 。
Serverless Kubernetes 及时开箱即用,用完就走,无需关心底层的任何设施,所有的技术设施都有阿里云统一运营和维护,零运维,适用于批量任务,突发性扩容,个人实验性的应用服务。
以上就是阿里云的三种服务形态,适用于用户服务群体的画像,可以根据自己的业务需求,企业规模,自身能力使用不同的版本,更好的实现业务价值。
四、Kubernetes 版本
阿里云容器服务 Kubernetes 版 ACK
1.基于 Kubernetes 云原生技术
2.整合阿里云虛拟化、存储、网络和安全能力
3.提供高性能可伸缩的容器应用管理能力
4.简化集群的搭建和扩容等工作,让您专注于容器化的应用的开发与管理。
阿里云容器服务 Kubernetes 版 ACK 是最重要的版本,它基于Kubernetes 云原生技术,通过容器服务管理的安排,创建一个高可用的 Kubernetes 集群,整合了阿里云虚拟化、存储、网络和安全能力,提供高性能可伸缩的容器应用管理能力,简化集群的搭建和扩容等工作,让您专注于容器化的应用的开发与管理。
阿里云容器服务是基于 Kubernetes 版开元技术上做了很多核心功能的加固,基于 Kubernetes 版HK做了核心和扩展的能力的增强,从安全网络和整个集群管理上增强。多集群管理上提供了多云和混合云统一集群管理,提升了集群的升级和集群的弹性。在安全合规方面提供了相应的等级保护。
安全的策略管路和安全的操作实际,高可用方面提供了整个具备容灾备份,断电飞赴执行的能力,并强化了系统的可观察能力,日志监控告警能力,链路跟踪的深带体系。使得应用在一个闭环的环境中,完成一个从全方位的安全网络、高可用可观察方面提供支撑。
五、容器服务 ACK 基于 K8S 的增强
容器服务 ACK 是基于 kubernetes 基础版本上的增强。阿里云ACK kubernetes 提供了更多与用户息息相关的能力提升。能够集成底层阿里云提供的网络基础设施和核心安全功能,提供弹性高可靠的
Laas,以低廉成本全球化接入。在容器安全与信任方面,提供了强大的安全支撑,安全架构与修复。在时实践方面,有着最佳容器实践,做了海量用户经验总结,能够深度的进行整合。在创新方面,阿里云原生与阿里体系的融合, Serverless 的创新与神龙裸金属加持,可以帮助在原有 kubernetes 能力的强化。
六、容器服务 ACK 与自建集群对比
如果可以选择阿里云提供的 ACK 容器服务,也可以选择在专业云或社云或在公有云上自建一套 K8S 体系。
首先阿里云 ACK 可以免费提供 master托管+专业服务,自建需要自己搭建集群,需要手动配置 kubernetes 相关的各种组件及配置文件、证书、密钥相关插件工具。并且整个集群的搭建需要发挥专业人员数天甚至数周的时间,以及需要研发和运维的投入,包括在公有云上需要投入大量的成本,来实现和原来云产品的集成。如果在阿里云上采购,所有的产品都已经完全集成好了,无需再次投入,但是在私有云上需要自己投入,比如日志服务,监控服务和存储管理产品,需要自行做相应的对接和一些开源的探索。
在实践方面,阿里云有着许多实践经验,包括海量客户的验证,以及双11的验证。在自建 Kubernetes 对集群的压力性探索方面,需要做自己的探索,,包括在性能和优化方面,阿里云提供了神龙裸金属+Terway 的网络提升,在对于自建 K8S 上,对网络本身需要自建网络损耗,包括网络之间的交互,网络之间的占用资源都会带来许多损耗。
特别在安全与加固方面,需要基于开元或做人工的安全保障。而阿里云本身就会提供一套快速安全的响应和机制,可以一键收集 Kubernetes 版本,保证版本的迭代快。这里可以明显的看到如果自建 K8S,需要有一定的专业技术能力,并且能够做持续的投入,才能与阿里云 HK 匹配。所以一般情况下,如果用户想要专注在相应的这些业务服务上,建议使用阿里云提供的专业的容器服务。
对比点 |
阿里云 ACK |
自建 K8S |
成本 |
免费 master 托管+专业服务 |
Master 资源费+研发与运维投入 |
弹性 |
HPA Autoscaler, Serverless Addon |
HPA |
laaS 高度融合 |
自动对接 SLB/VPC/云存储/SLS. |
自建对接 |
实践经验 |
海量客户验证+阿里双11验证 |
自己摸索 |
性能与优化 |
神龙裸金属+Terway 网络提升 |
自建网络损耗30% |
安全与加固 |
快速安全响应和修复+一键升级 |
延迟+人工修复 |
七、容器服务 ACK 产品核心功能
1.集群管理
通过可视化的控制台,轻松的进行一键创建 Kubernetes 集群,支持跨可用区高可用。包括集群管理,集群创建,可以根据需求的管理创建各种形态的集群。选择不同类型丰富的不同节点,并进行灵活的自定义配置,包括集群升级方面可以一键升级K8S版本,升级到最新的版本来统一管理系统组件的升级。
在节点池的管理方面,支持节点池的生命周期管理。统一集群中配置不同的节点池,包括弹性伸缩,支持控制台一键多种弹性扩容或缩容的模式。多元管理方面也支持多元、混合云的多角度管理。授权管理方面,完全授权来支持 RAM 授权和 RBAC 授权管理模式。这样可以简单使用 RAM 授权,通过一键的方式就可以实现多用户的授权,使全方位支持 RAM 的授权和RBAC授权两种授权管理。
可以简单地用 RAM 授权通过一键的方式,就可以实现多用户的授权。实现一个多租户的管理环境,这是 ACK 的集群管理功能。
2.应用管理
应用管理是一站式容器全生命周期管理,应用创建支持多种类型的应用,是从镜像、模版的创建,支持环境变量的变化、应用健康的配置;支持应用全生命周期管理,支持应用查看、更新、删除、应用历史访问的回滚等;
应用事件相关的查看,应用滚动升级和应用替代的升级。这些覆盖了整个容器的应用全生命周期的管理。
应用调度支持多种调动模式,支持亲点间的亲和性调度、应用间亲和性调度和应用间的反亲和性调度;
应用伸缩是支持手动伸缩应用容器实例, HPA 自动伸缩策略;
应用发布部署方面支持支持灰度发布和蓝绿发布等多种方式;
应用目录是支持应用目录,简化整个云服务集成。
这些都是 Kubernetes 应用管理方面的核心功能。
3.存储于网络
整合里面底层所有资源,整和阿里云虚拟化存储网络集群等的关键能力。
快速支持支持阿里云云盘、文件存储 NAS、对象存储 OSS 等不同的存储方式来构建底层的持久化存储支持;包括网络支持方面也支持高性能的 Flannel VPC/Terway 容器网络。
Terway 是阿里云自研的容器网络插件。能够将阿里云的弹性网卡分配给容器,来支持基于 Kubernetes 精准的定义的容器间的访问策略。支持对单个容器做带宽的限流,而无需使用 NET WORK 的用户可以选择 Flannel ,在其他情况下可以使用 Terway 的方式,具体的可以在高性能网络部分做相关的了解。
4.运维与安全
运维和安全提供全方位的安全管理体系:基础架构安全、供应链安全、容器运行时安全。
基础架构安全内包含了以监控,指的是支持集群、节点、应用、容器实例监控能力;
日志方面:提供日志管理及日志查看和日志审计的相关能力;
安全中心能够提供运行时刻的安全策略管理,以及整个安全的监控告警,提升容器安全整体纵深防御能力;
安全沙箱:提供应用运行在一个清凉的虚拟化的安全沙箱环境中,拥有独立内核,并具有更好的安全隔离能力,可以适用于一些不可信任的应用隔离、故障隔离和性能隔离以及多用户间的负载隔离层级;
支持加密计算:支持精密,提供可信的环境,保证数据和影视的相关的安全。
5.弹性伸缩
弹性伸缩是在容器云上被广泛使用的功能。
典型的场景包含在线业务弹性伸缩、大规模计算的训练、深度学习 GPU 和共享 GPU 的训练与推理,定时周期性负载变化等。
以上都非常适合弹性伸缩的应用。
在双11大促期间,也是需要弹性伸缩的场景,弹性伸缩在阿里云ACK上有两个维度:调度层的弹性资源伸缩和资源层弹性伸缩。
调度层弹性伸缩组件包括:容器水平伸缩( HPA 模式)、容器垂直伸缩(VPA)、容器定时伸缩模式(CronHPA)、弹性负载 (Elastic-Workload 弹性伸缩的调用模式)。
在资源层的弹性上,主要是集群的容量规划不能只满足集群调用时会自动提供 ESE 或 ECI 的方式等来进行调用的容量。这种两层的弹性组件与能力可以分开使用也可以结合在一起。并且两者可以通过统一的调度层面来实现状态的解耦。这就是 ACK 的核心功能,弹性伸缩。
6.产品的优势
首先具备一个强大的集群管理,单集群可以支持管理500个节点。包括提供了极致的弹性的资源,扩充能力,可以根据资源使用情况可以快速的自动调整容器的数量,并且在数分钟内可以扩展到上千上万的一个节点。提供了一站式的容器管理,提供整个应用管理镜像,仓库日志,统一监控等全方位的安全管理。
提供了容器一站式管理解决方案,丰富的工作节点支持多种资源类型,多种付费模式,来满足不同业务类型的用户的需求。包括最优的 laas 层能力提供了 ack 容器实力和弹性裸金属实力深入。
提供企业级的安全稳定及系统响应的能力,提供全天候的技术支持,通过供单系统来提供全天候的7×24小时的技术服务,这是容器服务ACK 产品的优势。
八、容器服务 ACK 应用场景
1.弹性伸缩架构
弹性伸缩可以根据业务量来自动对业务进行扩容/缩容,不需要人工干预,来避免在大促过程中流量的激增和扩容不及时导致新用户无法访问和系统挂掉,以及平时大量闲置资源浪费。
这个方式使用弹性扩容最好的产品,最好的模式,能够实现快速响应,业务流量达到扩容指标,秒级触发容器的扩缩操作,整个过程都是全自动的,整个扩容过程完全自动化,无需进行干预。第三个是低成本的流量,降低自动缩容避免资源浪费。在波峰结束后,自动缩容。策略化配置缩容来支撑业务。
ACK 的自动伸缩能力通过节点的伸缩组来实现的,可以按需弹出普通示例,GPU 示例和付费示例来支持多可用,多规格示例。
多种伸缩模式来满足不同节点的伸缩场景, Kubernetes 是通过调度与资源解耦的两层弹性模型来解决这样的问题。
当集群调度达到100%时,会自动化触发弹性的扩容,当资源弹出之后,无法调用单元会自动弹到新弹出的节点下,从而降低整个应用的负载均衡情况。这个关键场景就是 ACK 弹性伸缩的场景架构。
2.DevOps 持续交付
随着企业业务需求变化频繁,业务测试上线需求频繁,流程也越来越复杂,同时面对项目和环境的增加,人手不足(开发、测试、运维、部署人员)的问题也导致应对这些变化时压力较大,响应缓慢。
为解决这些问题,可以利用容器标准化的一致能力和自动化的能力,帮助企业实现自动化代码构建、包括企业系统版本管理、持续集成。
通过配合 DevOps 可以自动生产代码提交,到应用部署的完整的DevOps 流程。
确保只有通过自动化代码才能自动化的进行交互和部署。高效替代之前迭代缓慢的传统方式。包括通过容器镜像和 Kubernetes 标准的概念对构建的任务进行分装,可以快速的实现自动化部署和持续集成的模板。使得企业可以快速的在持续交互的平台上自定义实现快速的持续集成、持续部署。
如图所示,通过 Kubernetes 容器和DevOps来实现整个容器集成部署,来提供整个 DevOps 自动化, Kubernetes 也可以实现生产环境、测试环境和预防环境的环境一致性。还包括整个环境的持续的反馈,通过通知的方式反馈到每一位用户。可以进行自动化的部署做相应的持续交互,这就是整个 ACK 实现的 DevOps 持续交互的应用场景。
3.云原生 AI
深度学习领域需要处理的三个核心问题是性能、效率和成本,利用ACK 容服务轻松部署机器学习应用,无缝的整合包括云的计算、存储、负载均衡等服务,同时贯穿了深度学习的框架的生命周期。
基于阿里云强大的计算能力,可以把 Tensorfiow 这些开元的计算,包括 JDhub 这些都分段到容器内,通过容器提供标准化的服务。需要的时候通过容器的方式提供给租户的环境,实现降低门槛并开放的端到端的深度服务平台。
可以通过容器化技术封装深度的学习框架,包括 Tensorfiow 等不同的深度学习框架,只要是开源的,可以通过下载开元镜像,通过启动镜像的运行容器,配置相应的后端服务。
相应的服务绑定到相应的弹性资源, ECS 或弹性 GPU 计算资源ECS 和高性能 HPC 可以做多种计算资源的灵活调度。
可以和相应的开发日志,相应的 DevOps 做集成,可以轻松在不同的环境中快速发布。
在做一个深度学习的模型之后,这个模型可以迅速的发布到不同的环境中,再把它再分装到容器里,通过容器这种标准化,再把它分装到生产环境进行部署,就可以实现大规模的 AI 深度学习建立应用。
这就是 ACK 应用场景云原生 AI 的介绍。