与阿里云容器服务 ACK 发行版的深度对话第一弹:如何借助 sealer 实现快速构建 & 部署

简介: 本文将以ACK 发行版的口吻为大家详细讲解阿里巴巴的开源集群镜像技术 sealer,以及如何借助它来实现阿里云 ACK 服务的快速稳定交付。

作者:淮右、王飞、瑜佳


记者:阿里云原生的读者朋友们大家好,今天应广大感兴趣朋友们的强烈要求,我们邀请来了「阿里云容器服务 ACK 发行版」做客我们的栏目,为大家讲述它的身世之谜,以及它是如何和伙伴们配合,让大家在自有基础设施上获得一致的最佳体验。所以走过路过千万不容错过哦~ 


阿里云容器服务 ACK 发行版(简称 ACK Distro):大家好,我是阿里云容器服务 ACK 发行版,大家可以叫我的小名,ACK Distro,本次采访我将为大家详细讲解我的好伙伴:阿里巴巴的开源集群镜像技术 sealer,以及我是如何借助它来实现阿里云 ACK 服务的快速稳定交付。


ACK Distro 是什么


记者:在介绍伙伴之前,让我们先进入第一个版块吧。很多新来的读者还不清楚您是谁,及您的功能是什么,不妨先来做个自我介绍。


ACK Distro:好的没问题。我是阿里针对异构 IaaS 环境发布的 Kubernetes 发行版,可以在异构 IaaS 部署私有化输出的容器服务 ACK 敏捷版,就是默认通过我生产、运维 Kubernetes 集群,大家在使用容器服务 ACK 敏捷版时,通过简单平台交互,即可实现 ACK Distro 集群的部署、升级、扩容等基础运维。


我的伙伴们,即核心组件都通过了阿里云容器服务 ACK 和阿里巴巴集团核心业务场景在大规模生产环境中的验证和安全检查,它们都具有业界领先的安全性和可靠性。


身为一个完整的 Kubernetes 发行版,我可以通过开源集群镜像技术 sealer 简单快速地交付到离线环境,帮助大家更简单灵活地管理集群。这些组件支持 X86和 ARM 硬件架构,并包含一个高性能的网络插件 hybridnet,它确保我可以在不同的基础设施上顺利运行。同时,我可以在阿里云容器服务 ACK 上被注册,达到一致的资源管理、策略遵从和流量控制,使大家可以获得与在线 ACK 集群相同的用户体验。另外,针对 hybridnet 的详细说明,我将在之后的采访中为大家披露,敬请期待哦~ 


sealer 的定义及其核心原理


记者:您刚才提到可以通过 sealer 更简单灵活地管理集群,那它具体是什么以及核心原理是怎样的呢?


ACK Distro:sealer 作为阿里巴巴开源的一款帮助分布式应用快速进行打包、交付和运行的解决方案,可以通过把分布式应用及其数据库中间件等依赖项一起打包来解决复杂应用的交付问题。


sealer 构建出来的产物我们称之为集群镜像,集群镜像里内嵌了一套完整的 Kubernetes + 容器,它们双剑合璧,解决了分布式应用的交付一致性问题。


图片 1.png


它的核心原理可以参考下图:


图片 2.png


Docker 可以把单个操作系统(rootfs)和单机应用构建(docker build) 成一个容器镜像,并在单机上快速运行(docker run),而 sealer 则把 Kubernetes 看作整个集群的操作系统(cloud rootfs),并和其上部署的分布式应用构建(sealer build)成一个集群镜像,在集群上快速运行(sealer run)。与此同时,集群镜像也可以被推送(push)到公共镜像仓库(如 DockerHub、阿里云容器镜像服务等)中共享给其他用户使用。


简单描述一下,大家可以通过像 Dockerfile 一样的文件来编写一个 Kubefile:


FROM registry.cn-qingdao.aliyuncs.com/sealer-io/kubernetes:v1.19.9
RUN wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml
CMD kubectl apply -f recommended.yaml


使用下面的 sealer build 命令就可以构建集群镜像:


sealer build -t registry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:latest .


然后一个包含 dashboard 的集群镜像就可以被制作出来了,大家可以运行或者分享给别人。 


把制作好的集群镜像推送到镜像仓库,集群镜像仓库兼容 docker 镜像仓库标准,可以把集群镜像推送到 docker hub、阿里 ACR、或者 Harbor 中。


sealer push registry.cn-qingdao.aliyuncs.com/sealer-io/dashboard:latest


记者:也就是说,sealer 可以把 Kubernetes 及其上面部署的应用统一打包构建,且集群也可以被其他产品纳管。 


ACK Distro:是的,这就是我们追求的,希望为大家带来的一致体验。除此之外,sealer 的技术优势还有以下三点。


sealer 的技术优势


写时复制


集群镜像的存储也是通过写时复制的方式实现的。这样做有两个好处:我们可以把同一集群中不同的分布式软件打在不同层,以实现复用;还可以实现直接把集群镜像 push 到 docker 镜像仓库中。


容器镜像缓存


1)sealer build 的过程和 Docker build 还是有些区别的,sealer build 的强大之处在于不用起 Kubernetes 集群也可以执行 Kubefile 中定义的 apply 指令。


2)sealer 拥有只要私有镜像仓库中有就直接拉取,没有的话才去公网拉取镜像的能力。


图片 3.png


负载均衡


sealer 的集群高可用使用了轻量级的负载均衡 lvscare。相比其它负载均衡,lvscare 非常小仅有几百行代码,而且 lvscare 只做 ipvs 规则的守护,本身不做负载,非常稳定。直接在 node 上监听 apiserver,如果失效就移除对应的规则,重新运行之后会自动加回,相当于是一个专用的负载均衡器。


图片 4.pngimage.gif


记者:确实名不虚传。那促成这次梦幻联动的原因是什么呢?或者说您为什么选择 sealer 作为合作伙伴呢? 


ACK Distro:我最重要的使命,是帮助用户在自己的基础设施上,简单、快速地使用阿里云容器服务 ACK,并获得一致体验。在这个目标下,能够在多种多样的基础设施上进行稳定交付的能力显得尤为重要,而 sealer 提供的能力非常好地解决了这个难题。


首先,sealer 提供的标准化打包能力,省去了自定义一套打包逻辑的繁琐工作。


其次,sealer 交付我的命令简单、用时短,大家通过一条命令便可以在几分钟内完成 ACK Distro 集群的部署,效率极高。并且,我可以直接享受到 sealer 对多样基础设施的支持能力。


在运行时,sealer 提供的负载均衡、镜像缓存等技术,帮助我可以无需依赖公共云的能力,在离线环境就可以实现高可用,稳定运行。最后,基于 sealer 的 Kubefile,用户还可以将 ACK Distro 作为基础镜像,灵活定制自己的集群镜像,让我更好地赋能给广大开发者。


如何通过 sealer 使用 ACK Distro


ACK Distro:了解到 sealer 对我的重要性后,大家可以按照下面几步,通过 sealer 获取 ACK Distro。


获取 sealer 工具


wget -c http://sealer.oss-cn-beijing.aliyuncs.com/sealers/sealer-v0.5.2-linux-amd64.tar.gz
tar -xvf sealer-v0.5.2-linux-amd64.tar.gz -C /usr/bin


获取 ACK Distro 制品并拉起集群


sealer run
ack-agility-registry.cn-shanghai.cr.aliyuncs.com/ecp_builder/ackdistro:v1.20.4-ack-2 -m ${master_ip1}[,${master_ip2},${master_ip3}] [-n ${worker_ip1...}] -p password


查看集群状态


kubectl get cs


扩容节点


sealer join -m ${master_ip1}[,${master_ip2},${master_ip3}] [ -n ${worker_ip1}...]


缩容节点


sealer delete -m ${master_ip1}[,${master_ip2},${master_ip3}] [ -n ${worker_ip1}...]


清理 ACK Distro 集群


sealer delete -a


如果大家仍有疑问,欢迎前往 ACK Distro 的官方 Github 库:

https://github.com/AliyunContainerService/ackdistro


以 Istio 为例,基于 ACK Distro 构建自己的集群镜像


记者:您刚才提到,用户可以将 ACK Distro 作为基础镜像,灵活定制自己的集群镜像,那具体应该怎样操作呢? 


ACK Distro:我以 Istio 为例,为大家说明一下吧~ 


在原有的 ACK Distro 基础镜像上构建,编写 Kubefile


FROM ack-distro:1.1
RUN  curl -L https://istio.io/downloadIstio | sh -


构建镜像


sealer build -f Kubefile -m lite -t ack-distro-istio:v0.0.1 .


得到 ack-distro-istio:0.0.1


图片 5.png


部署 ack-distro-istio:0.0.1


sealer run ack-distro-istio:v0.0.1 -m ${master_ip1}[,${master_ip2},${master_ip3}] [ -n ${worker_ip1}...] -p password


查看 Istio


图片 6.png


通过以上 5 步,大家就可以基于 ACK Distro 构建出一个带 Istio 的 plus 版本的集群镜像,并且可以在多样的基础设施完成部署,这个新的集群镜像可以享用我的所有功能,包括交付能力。


Istio 只是一个样例,相信大家可以看出,通过 Kubefile,您有充分的自由度来自定义您自己的镜像,只要您的组件可以部署在 Kubernetes 之上,那么就能够用此种方式去打包。 


记者:明白了,您还有什么想对大家补充的吗? 


ACK Distro:借助 sealer,我实现了阿里云容器服务 ACK 的快速稳定交付,在此基础上也可以实现绝大多数容器化的分布式软件的快速交付。同时 ACK Distro 的项目组成员也是 sealer 项目的重要参与者,两者相辅相成,致力于为广大的开发者们带来更好用的容器服务体验。 


记者:感谢您的细心讲解,我们第一弹深度访谈到这里就要跟大家说再见了,期待您下次的精彩专访。 


ACK Distro:我们下次再见!


相关链接


ACK Distro官网:

https://www.aliyun.com/product/aliware/ackdistro


ACK Distro 官方 GitHub:

https://github.com/AliyunContainerService/ackdistro


让创新触手可及,阿里云容器服务 ACK 发行版开放免费下载:

https://mp.weixin.qq.com/s/Lc2afj91sykHMDLUKA_0bw


骚操作,这款工具可以把 Kubernetes 集群打包成一个镜像:

https://mp.weixin.qq.com/s/ssZSMqogjP6CTOKOOR2e5Q


点击此处,前往 ACK Distro 官网查看更多相关信息!

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
8月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
845 2
|
10月前
|
运维 Kubernetes 持续交付
ACK One GitOps:让全球化游戏服务持续交付更简单
ACK One GitOps 致力于提供开箱即用的多集群 GitOps 持续交付能力,简化游戏等服务的多集群/多地域统一部署,让您更加专注于业务开发。
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
对话|企业如何构建更完善的容器供应链安全防护体系
对话|企业如何构建更完善的容器供应链安全防护体系
|
存储 测试技术 对象存储
使用容器服务ACK快速部署QwQ-32B模型并实现推理智能路由
阿里云最新发布的QwQ-32B模型,通过强化学习大幅度提升了模型推理能力。QwQ-32B模型拥有320亿参数,其性能可以与DeepSeek-R1 671B媲美。
|
人工智能 监控 安全
容器化AI模型的安全防护:构建可信的AI服务
在AI模型广泛应用的背景下,容器化AI模型的安全防护至关重要。主要安全威胁包括数据窃取、模型窃取、对抗样本攻击和模型后门攻击等。为应对这些威胁,需采取多层次防护措施:容器安全(如使用可信镜像、限制权限)、模型安全(如加密、水印)、数据安全(如加密、脱敏)和推理安全(如输入验证、异常检测)。此外,利用开源工具如Anchore Engine、Falco和ART等,可进一步加强防护。遵循安全开发生命周期、最小权限原则和深度防御等最佳实践,确保AI服务的安全性和可信度。
|
机器学习/深度学习 数据采集 人工智能
容器化机器学习流水线:构建可复用的AI工作流
本文介绍了如何构建容器化的机器学习流水线,以提高AI模型开发和部署的效率与可重复性。首先,我们探讨了机器学习流水线的概念及其优势,包括自动化任务、确保一致性、简化协作和实现CI/CD。接着,详细说明了使用Kubeflow Pipelines在Kubernetes上构建流水线的步骤,涵盖安装、定义流水线、构建组件镜像及上传运行。容器化流水线不仅提升了环境一致性和可移植性,还通过资源隔离和扩展性支持更大规模的数据处理。
|
弹性计算 人工智能 资源调度
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
本期节目围绕软件供应链安全、容器安全的主要挑战以及阿里云如何帮助用户等维度展开了深入的讨论。
|
存储 运维 Kubernetes
容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复
阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版
  • 推荐镜像

    更多