与阿里云容器服务 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
相关文章
|
4月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
862 108
|
3月前
|
Kubernetes Devops 应用服务中间件
基于 Azure DevOps 与阿里云 ACK 构建企业级 CI/CD 流水线
本文介绍如何结合阿里云 ACK 与 Azure DevOps 搭建自动化部署流程,涵盖集群创建、流水线配置、应用部署与公网暴露,助力企业高效落地云原生 DevOps 实践。
414 1
|
4月前
|
运维 监控 数据可视化
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
|
2月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
564 4
|
4月前
|
运维 数据可视化 C++
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
2025年热门Web化容器部署工具对比:Portainer与Websoft9。Portainer以轻量可视化管理见长,适合技术团队运维;Websoft9则提供一站式应用部署与容器管理,内置丰富开源模板,降低中小企业部署门槛。两者各有优势,助力企业提升容器化效率。
393 1
2025 热门的 Web 化容器部署工具对比:Portainer VS Websoft9
|
3月前
|
存储 Kubernetes 持续交付
为什么Docker容器化改变了开发与部署?
为什么Docker容器化改变了开发与部署?
|
3月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
452 2
|
人工智能 运维 Kubernetes
阿里云容器服务ACK AI助手正式上线带来的便利性
作为开发者想必大家都知道,云原生容器技术的优势,尤其是近两年的随着容器技术的迅猛发展,Kubernetes(K8s)已成为广泛应用于容器编排和管理的领先解决方案,但是K8s的运维复杂度一直是挑战之一。为了应对这一问题,就在最近,阿里云容器服务团队正式发布了ACK AI助手,这是一款旨在通过大模型增强智能诊断的产品,旨在帮助企业和开发者降低Kubernetes(K8s)的运维复杂度。那么本文就来详细讲讲关于这款产品,让我们结合实际案例分享一下K8s的运维经验,探讨ACK AI助手能否有效降低K8s的运维复杂度,并展望ACK AI助手正式版上线后的新功能。
887 2
阿里云容器服务ACK AI助手正式上线带来的便利性
|
存储 Kubernetes Docker
容器服务ACK常见问题之阿里云控制台进不去了如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
10月前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。