作者:淮右、王飞、瑜佳
记者: 阿里云原生的读者朋友们咱们好,今日应广大感兴趣朋友们的强烈要求,咱们约请来了「阿里云容器服务 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 + 容器,它们双剑合璧,处理了分布式运用的交给共同性问题。
它的中心原理能够参阅下图:
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 拥有只需私有镜像库房中有就直接拉取,没有的话才去公网拉取镜像的才能。
负载均衡
sealer 的集群高可用运用了轻量级的负载均衡 lvscare。比较其它负载均衡,lvscare 非常小仅有几百行代码,而且 lvscare 只做 ipvs 规矩的看护,本身不做负载,非常安稳。直接在 node 上监听 apiserver,假如失效就移除对应的规矩,重新运转之后会自动加回,适当于是一个专用的负载均衡器。
记者:确实名不虚传。那促成这次梦境联动的原因是什么呢?或许说您为什么挑选 sealer 作为合作同伴呢?****
ACK Distro: 我最重要的使命,是协助用户在自己的基础设施上,简略、快速地运用阿里云容器服务 ACK,并取得共同体会。在这个目标下,能够在多种多样的基础设施上进行安稳交给的才能显得尤为重要,而 sealer 供给的才能非常好地处理了这个难题。
首先,sealer 供给的规范化打包才能,省去了自界说一套打包逻辑的繁琐工作。
其次,sealer 交给我的命令简略、用时短,咱们经过一条命令便能够在几分钟内完结 ACK Distro 集群的布置,功率极高。而且,我能够直接享受到 sealer 对多样基础设施的支撑才能。
在运转时,sealer 供给的负载均衡、镜像缓存等技能,协助我能够无需依赖公共云的才能,在离线环境就能够完结高可用,安稳运转。最后,根据 sealer 的 Kubefile,用户还能够将 ACKDistro 作为基础镜像,灵活定制自己的集群镜像,让我更好地赋能给广大开发者。
如何经过 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
布置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
经过以上 5 步,咱们就能够根据 ACK Distro 构建出一个带 Istio 的 plus 版本的集群镜像,而且能够在多样的基础设施完结布置,这个新的集群镜像能够享用我的一切功用,包括交给才能。
Istio 仅仅一个样例,相信咱们能够看出,经过 Kubefile,您有充分的自由度来自界说您自己的镜像,只需您的组件能够布置在 Kubernetes 之上,那么就能够用此种方法去打包。
记者: 理解了,您还有什么想对咱们补充的吗?
ACK Distro: 借助 sealer,我完结了阿里云容器服务 ACK 的快速安稳交给,在此基础上也能够完结绝大多数容器化的分布式软件的快速交给。一起 ACK Distro 的项目组成员也是 sealer 项目的重要参与者,两者相辅相成,致力于为广大的开发者们带来更好用的容器服务体会。
记者: 感谢您的细心解说,咱们第一弹深度访谈到这儿就要跟咱们说再会了,期待您下次的精彩专访。
ACK Distro: 咱们下次再会!
相关链接
ACK Distro官网:
www.aliyun.com/product/ali…
ACK Distro 官方 GitHub:
github.com/AliyunConta…
让创新触手可及,阿里云容器服务 ACK 发行版敞开免费下载:
mp.weixin.qq.com/s/Lc2afj91s…
骚操作,这款东西能够把 Kubernetes 集群打包成一个镜像:
mp.weixin.qq.com/s/ssZSMqogj…
点击此处,前往 ACK Distro 官网检查更多相关信息!