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

本文涉及的产品
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 本文将以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 官网查看更多相关信息!

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3天前
|
存储 测试技术 对象存储
使用容器服务ACK快速部署QwQ-32B模型并实现推理智能路由
阿里云最新发布的QwQ-32B模型,通过强化学习大幅度提升了模型推理能力。QwQ-32B模型拥有320亿参数,其性能可以与DeepSeek-R1 671B媲美。
|
11天前
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
22 10
|
13天前
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
11天前
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
|
11天前
|
边缘计算 调度 对象存储
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
|
11天前
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
|
9天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
|
13天前
|
运维 分布式计算 Kubernetes
ACK One多集群Service帮助大批量应用跨集群无缝迁移
ACK One多集群Service可以帮助您,在无需关注服务间的依赖,和最小化迁移风险的前提下,完成跨集群无缝迁移大批量应用。
|
2月前
|
缓存 容灾 网络协议
ACK One多集群网关:实现高效容灾方案
ACK One多集群网关可以帮助您快速构建同城跨AZ多活容灾系统、混合云同城跨AZ多活容灾系统,以及异地容灾系统。
|
3月前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
179 12

相关产品

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

    更多