作者:刘大鹏(雨镜)

前语

云原生的年代已经到来,云原生技术正在重塑整个软件生命周期,阿里巴巴是国内最早布局云原生技术的公司之一。

容器服务团队在曩昔的几年时间内协助很多用户成功把事务云原生化并搬家上云,其中有现在已经是咱们 TOP10 的大客户,也有需求在国内展开事务的海外用户,有些是从其他云厂商搬家过来的用户,有些是从 IDC 里搬家上云的用户,并且越来越多的用户开端咨询怎么对自己的运用做云原生化改造、怎么把事务滑润地搬家到云上。每个用户的事务场景都是不同的,有些差异化的事务场景对容器渠道也有一些定制化的需求,咱们在协助这些用户执行迁云方案的同时也在不断思考怎么把这些事例中共性的东西做一些沉积,总结出一些优秀的解决方案、最佳实践以及开发一些东西来协助用户快速完结迁云的这件事情。这些解决方案、最佳实践以及迁云东西便是今天这篇文章想要分享的内容。

在协助用户执行迁云方案之前,咱们首要必须要回答至少 3 个问题:

(1)ACK(阿里云容器服务 Kubernetes)怎么能确保用户事务的牢靠性、安稳性、安全性和灵敏性;

(2)怎么规划迁云方案把事务滑润地搬家到 ACK;

(3)运用怎么做进一步改造来适配 ACK 供给的更强壮的扩展才能。

ACK 怎么确保用户事务的牢靠性、安稳性、安全性和灵敏拓展性

首要,ACK 是以阿里云牢靠安稳的 IaaS 渠道为底座的,有最大的弹性化与低价本钱和全球化接入的优势;其次,ACK 本身处于阿里云的安全体系架构之下并从根底设施到容器运转时环境对容器集群有全维度的安全加固;曩昔几年咱们很好地支撑了成百上千家巨细企业的事务运转,有海量用户经验总结并经过双 11 验证;除此之外。ACK 是在标准的 Kubernetes 根底上,对与用户休戚相关的才能做了大幅提高,用户彻底不需求担心会被某一家厂商绑定。

1.jpg

在咱们曩昔协助用户事务上云的事例中,绝大部分是自建 Kubernetes 集群搬家到 ACK 集群,与自建 Kubernetes 集群比较较,ACK 在本钱、弹性、IaaS 高度融合、功能、安全加固以及实践经验等方面都有非常巨大的优势。

别的,ACK 与阿里云的所有 region 保持一致,除了国内多个区域开服外,在东南亚、中东、欧洲、美东美西等地域都有开服,彻底可以满意用户展开全球事务的需求。

全体迁云方案规划

用户事务全体迁云的方案规划会涉及到集群规划、数据搬家、监控切换、日志切换以及最终的出产流量切换或并网操作。

2.jpg

迁云到 ACK 需求做涉及到哪些组件、搬家哪些数据、切换哪些服务等,都是需求需求在搬家上云之前规划好的。

首要需求做集群规划,用户需求依据自己事务场景的不同来挑选不同的机器类型,比方 CPU 机器仍是 GPU 机器,比方虚拟服务器ECS仍是神龙裸金属服务器等等。

其次网络规划这部分会涉及到容器集群根底设施挑选 vpc 内网网络仍是经典网络,集群内 pod 之间进行通讯模式是 flannel 模式仍是 terway 模式等。

再次在容量规划这部分,用户可以依据自己的本钱以及预算规划一个可满意初期事务正常运转的容量即可,随后可以配置动态扩缩容随时弹缩集群规划。

第四在安全防护提高这部分,有根底架构安全比方设置合理的安全组规则,有镜像安全比方运用私有镜像并定义镜像安全扫描,Kubernetes 运用安全办理比方设置不同服务间互相拜访的网络安全策略等。

第五在监控切换这部分相关于用户自建 Kubernetes 会更加全维度和立体,从根底设施到容器运转时监控一应俱全,并可依据阈值设定触发报警通知;用户一般也会把自建的日志搜集方案切换成阿里云上企业级的日志产品 SLS。

第六在数据搬家是非常重要的一部分,这些数据包括数据库数据、存储数据、容器镜像等,咱们会对接阿里云上企业级的产品以及搬家东西来完结数据的搬家,目的是为了确保数据迁云的牢靠性、安全性。现在备份中心支撑云下数据到云上 ACK 的搬家,您可以运用备份中心来完结运用及数据到 ACK 的搬家。

最后在运用改造主要涉及的内容包括镜像地址的更新、服务露出方法的优化以及存储盘挂载方法的更新适配。别的需求供给一个满意用户快速迭代上线产品的 CICD 方案。以上各个组件调试完毕后,咱们就可以进行一部分出产流量的切换。

以上是从集群规划到出产流量切换便是用户事务搬家上云所需求涉及到的总体几个进程。

3.jpg

咱们供给了一个企业容器化生命周期模型,这个模型是依据时间阶段和用户侧各个事务人物来区分的,比方事务架构师人物需求关怀的是事务上云能给公司带来什么价值,在 TCO 和场景上会带来哪些优化,云渠道在安全性以及核算、存储、网络才能上是否能满意当时事务需求;IT 架构师负责规划当时事务需求的集群容量和规划以及网络选型等问题,剩下的便是体系办理员与运用办理员把迁云方案的各个细节执行下来。这个模型的主要中心关注点是让用户的事务上云后能更安稳、本钱更低、功率更高。

全栈迁云架构思路分两种,一种是全体搬家,一种是滑润搬家。全体搬家是指用户运用悉数搬家上云后,各个组件调试完毕、测验检验通往后,可以全体切换出产流量到线上集群,待线上集群上的事务安稳运转一段时间后再下线原有环境。滑润搬家是指用户可以运用线上 ACK 集群纳管线下节点,或许线上集群与线下集群混合组网对外供给服务,逐渐改造事务组件上云后将原有环境下线。这两种方法比较,全体搬家更简略,滑润搬家响度复杂但对事务影响小,所以也需求依据用户的实践场景做挑选。

4.jpg

容器化全体迁云这部分还有两个小场景,一个是用户从自建 Kubernetes 集群搬家到 ACK,此场景下用户的运用已经做了很大一部分的云原生化改造,搬家作业相对来说会简略些,还有一部分用户的运用是传统运用,直接运转在虚拟机或许裸金属服务器上,没有做过任何云原生化的改造,关于这部分场景,咱们也供给了相关东西或方案协助用户进行云原生化的迁云改造,比方运用 derrick 项目可以自动检测源码项目类型并生成 Dockerfile 和用于运用布置编列的 yaml 文件。

5.jpg

为了协助用户提高迁云的功率,咱们也在继续积累和开源一些迁云东西及产品。比 ack-image-builder 为用户供给创立 ACK 集群节点自定义镜像的模板并经过校验模块检查自定义镜像是否满意 ACK 集群要求;sync-repo 可以协助用户快速完结容器镜像批量搬家至 ACR(容器镜像库房服务); 备份中心为无状况或有状况运用的备份、康复与搬家供给了一站式的解决方案,特别是对混合云,多集群的有状况运用供给了数据容灾和运用搬家才能,可以协助用户快速把其他云厂商或许自建 Kubernetes 集群下的完好运用及 PV 数据搬家至 ACK 集群,并支撑丰厚的云下存储类型。

经过备份中心来完结已有 Kubernetes 集群搬家的主要进程如下:

  1. 在线下 Kubernetes 创立集群(例如,Rancher 集群),将线下集群接入注册集群。具体操作,请拜见创立注册集群并接入本地数据中心集群;

  2. 云上经过 ACK 创立托管版集群,布置备份服务组件;

  3. 云下纳管集群(即注册集群)安装备份组件,并经过备份中心备份线下集群的运用及 PV 数据,具体操作,请拜见创立备份使命;

  4. 在云上 ACK 集群中,经过备份中心使云下运用和数据的备份,在云上进行康复。

6.jpg

在数据搬家部分,牢靠搬家是要害。现在备份中心支撑的云下存储类型为:

  • 数据中心本地块存储 SAN、Ceph OBD 及本地盘 LVM 等。

  • 数据中心文件体系 HostPath、NFS、NetApp、GlusterFS 及 CephFS 等。

  • 数据中心本地目标存储 Ceph S3 等。

经过备份中心,可以将云下 Kubernetes 运用及 PV 数据搬家到 ACK 集群,完结顺利云原生化改造。

7.jpg

数据、运用迁云完结后,需求进一步适配监控、日志等组件,待各个组件调试完毕经过检验后,可以运用智能 DNS 进行出产流量的切开。

运用改造和优化

8.jpg

9.jpg

关于运用改造和优化这部分,Kubernetes 到 Kubernetes 的场景下,需求优化的是去适配自动扩容等自建 Kubernetes 不具备的那些才能,在传统运用搬家到 ACK 的场景下,这部分的作业量会更大些,所以咱们针对这个场景也输出了一些方案,比方类似于异地多活的方案,咱们把用户传统运用环境,通常是虚拟机或许裸机环境集成到线上 ACK 布置的 Istio 网格中,逐渐改造运用直至事务悉数切换到线上 ACK 集群。

10.jpg

在运用逐渐改造的这个进程中,会涉及到运用怎么容器化、网络环境怎么搬家以及数据搬家的问题,运用容器化这个问题,咱们可以运用SMC迁云中心来完结虚拟机转换为容器镜像的进程,网络这部分可以经过 iptables,External,CoreDNS PrivateZone 等方法对 IP 地址 DNS 域名做处理,保持原先的逻辑 IP 和域名不变,并经过 Istio 完结网络虚拟路由和可观测性的办理。

事例和总结

11.jpg

最后罗列的是部分迁云事例,其中有对高功能网络有特殊需求的用户,有做深度学习相关事务对大规划 GPU 机器有需求的用户,也有要求裸金属机型服务器的用户等等。

以上这些不同用户的不同事务场景在云原生化迁云方案的规划和执行上都有各自的差异性,不尽相同,需求结合 ACK 团队沉积下来的最佳实践来快速做出评价和方案,并凭借已有的一系列迁云东西快速完结事务从线下搬家上云的进程。

其他

ack-image-builder 可以协助用户制作契合 ACK 集群节点要求的自定义镜像

sync-repo 可以协助用户快速完结容器镜像批量搬家至 ACR(容器镜像库房服务)

跨集群康复 Kunbernetes 运用备份中心可以协助用户快速把其他云厂商或许自建 Kubernetes 集群下的完好运用搬家至 ACK 集群

相关链接

1)ACK(阿里云容器服务Kubernetes):

cs.console.aliyun.com/?spm=a2c6h.…

2)derrick:

github.com/alibaba/der…

3)ack-image-builder:

github.com/AliyunConta…

4)sync-repo:

github.com/AliyunConta…

5)ACR(容器镜像库房服务)

cr.console.aliyun.com/cn-hangzhou…

6)备份中心

help.aliyun.com/document_de…

7)Rancher集群

rancher.com/docs/ranche…

8)创立注册集群并接入本地数据中心集群

help.aliyun.com/document_de…

9)创立备份使命

help.aliyun.com/document_de…

10)ack-image-builder

github.com/AliyunConta…

11)sync-repo

github.com/AliyunConta…

12)ACR(容器镜像库房服务)

cr.console.aliyun.com/cn-hangzhou…

13)跨集群康复Kunbernetes运用

help.aliyun.com/document_de…

👇👇点击此处,即可检查容器服务 ACK 产品概况!

近期抢手

#云原生加速器,为你而来#

就等你了!从速点击下图了解概况吧~

导师团_画板 1 副本.png