共计 4545 个字符,预计需要花费 12 分钟才能阅读完成。
作者:刘大鹏(雨镜)
前言
云原生的时代曾经到来,云原生技术正在重塑整个软件生命周期,阿里巴巴是国内最早布局云原生技术的公司之一。
容器服务团队在过来的几年工夫内帮忙很多用户胜利把业务云原生化并迁徙上云,其中有当初曾经是咱们 TOP10 的大客户,也有须要在国内开展业务的海内用户,有些是从其余云厂商迁徙过去的用户,有些是从 IDC 里迁徙上云的用户,而且越来越多的用户开始征询如何对本人的利用做云原生化革新、如何把业务平滑地迁徙到云上。每个用户的业务场景都是不同的,有些差异化的业务场景对容器平台也有一些定制化的需要,咱们在帮忙这些用户落实迁云计划的同时也在一直思考如何把这些案例中共性的货色做一些积淀,总结出一些优良的解决方案、最佳实际以及开发一些工具来帮忙用户疾速实现迁云的这件事件。这些解决方案、最佳实际以及迁云工具就是明天这篇文章想要分享的内容。
在帮忙用户落实迁云计划之前,咱们首先必须要答复至多 3 个问题:
(1)ACK(阿里云容器服务 Kubernetes)如何能保障用户业务的可靠性、稳定性、安全性和灵活性;
(2)如何设计迁云计划把业务平滑地迁徙到 ACK;
(3)利用如何做进一步革新来适配 ACK 提供的更弱小的扩大能力。
ACK 如何保障用户业务的可靠性、稳定性、安全性和灵便拓展性
首先,ACK 是以阿里云牢靠稳固的 IaaS 平台为底座的,有最大的弹性化与低廉老本和全球化接入的劣势;其次,ACK 自身处于阿里云的平安体系架构之下并从基础设施到容器运行时环境对容器集群有全维度的平安加固;过来几年咱们很好地撑持了成千盈百家大小企业的业务运行,有海量用户经验总结并通过双 11 验证;除此之外。ACK 是在规范的 Kubernetes 根底上,对与用户非亲非故的能力做了大幅晋升,用户齐全不须要放心会被某一家厂商绑定。
在咱们过来帮忙用户业务上云的案例中,绝大部分是自建 Kubernetes 集群迁徙到 ACK 集群,与自建 Kubernetes 集群相比拟,ACK 在老本、弹性、IaaS 高度交融、性能、平安加固以及实践经验等方面都有十分微小的劣势。
另外,ACK 与阿里云的所有 region 保持一致,除了国内多个区域开服外,在东南亚、中东、欧洲、美东美西等地区都有开服,齐全能够满足用户发展寰球业务的需要。
整体迁云方案设计
用户业务整体迁云的方案设计会波及到集群布局、数据搬迁、监控切换、日志切换以及最终的生产流量切换或并网操作。
迁云到 ACK 须要做波及到哪些组件、搬迁哪些数据、切换哪些服务等,都是须要须要在迁徙上云之前设计好的。
首先须要做集群布局,用户须要依据本人业务场景的不同来抉择不同的机器类型,比方 CPU 机器还是 GPU 机器,比方虚构服务器 ECS 还是神龙裸金属服务器等等。
其次网络布局这部分会波及到容器集群基础设施抉择 vpc 内网网络还是经典网络,集群内 pod 之间进行通信模式是 flannel 模式还是 terway 模式等。
再次在容量布局这部分,用户能够依据本人的老本以及估算布局一个可满足初期业务失常运行的容量即可,随后能够配置动静扩缩容随时弹缩集群规模。
第四在平安防护晋升这部分,有基础架构平安比方设置正当的平安组规定,有镜像平安比方应用公有镜像并定义镜像平安扫描,Kubernetes 利用平安治理比方设置不同服务间相互拜访的网络安全策略等。
第五在监控切换这部分绝对于用户自建 Kubernetes 会更加全维度和平面,从基础设施到容器运行时监控一应俱全,并可依据阈值设定触发报警告诉;用户个别也会把自建的日志收集计划切换成阿里云上企业级的日志产品 SLS。
第六在数据迁徙是十分重要的一部分,这些数据包含数据库数据、存储数据、容器镜像等,咱们会对接阿里云上企业级的产品以及迁徙工具来实现数据的迁徙,目标是为了保证数据迁云的可靠性、安全性。目前备份核心反对云下数据到云上 ACK 的迁徙,您能够应用备份核心来实现利用及数据到 ACK 的迁徙。
最初在利用革新次要波及的内容包含镜像地址的更新、服务裸露形式的优化以及存储盘挂载形式的更新适配。另外须要提供一个满足用户疾速迭代上线产品的 CICD 计划。以上各个组件调试结束后,咱们就能够进行一部分生产流量的切换。
以上是从集群布局到生产流量切换便是用户业务迁徙上云所须要波及到的总体几个步骤。
咱们提供了一个企业容器化生命周期模型,这个模型是依据工夫阶段和用户侧各个业务角色来划分的,比方业务架构师角色须要关怀的是业务上云能给公司带来什么价值,在 TCO 和场景上会带来哪些优化,云平台在安全性以及计算、存储、网络能力上是否能满足以后业务需要;IT 架构师负责布局以后业务须要的集群容量和规模以及网络选型等问题,剩下的就是系统管理员与利用管理员把迁云计划的各个细节落实下来。这个模型的次要外围关注点是让用户的业务上云后能更稳固、老本更低、效率更高。
全栈迁云架构思路分两种,一种是整体迁徙,一种是平滑迁徙。整体迁徙是指用户利用全副迁徙上云后,各个组件调试结束、测试验收通过后,能够整体切换生产流量到线上集群,待线上集群上的业务稳固运行一段时间后再下线原有环境。平滑迁徙是指用户能够应用线上 ACK 集群纳管线下节点,或者线上集群与线下集群混合组网对外提供服务,逐渐革新业务组件上云后将原有环境下线。这两种形式相比,整体迁徙更简略,平滑迁徙响度简单但对业务影响小,所以也须要依据用户的理论场景做抉择。
容器化整体迁云这部分还有两个小场景,一个是用户从自建 Kubernetes 集群迁徙到 ACK,此场景下用户的利用曾经做了很大一部分的云原生化革新,迁徙工作相对来说会简略些,还有一部分用户的利用是传统利用,间接运行在虚拟机或者裸金属服务器上,没有做过任何云原生化的革新,对于这部分场景,咱们也提供了相干工具或计划帮忙用户进行云原生化的迁云革新,比方应用 derrick 我的项目能够自动检测源码我的项目类型并生成 Dockerfile 和用于利用部署编排的 yaml 文件。
为了帮忙用户进步迁云的效率,咱们也在继续积攒和开源一些迁云工具及产品。比 ack-image-builder 为用户提供创立 ACK 集群节点自定义镜像的模板并通过校验模块查看自定义镜像是否满足 ACK 集群要求;sync-repo 可能帮忙用户疾速实现容器镜像批量迁徙至 ACR(容器镜像仓库服务); 备份核心为无状态或有状态利用的备份、复原与迁徙提供了一站式的解决方案,特地是对混合云,多集群的有状态利用提供了数据容灾和利用迁徙能力,可能帮忙用户疾速把其余云厂商或者自建 Kubernetes 集群下的残缺利用及 PV 数据迁徙至 ACK 集群,并反对丰盛的云下存储类型。
通过备份核心来实现已有 Kubernetes 集群迁徙的次要步骤如下:
- 在线下 Kubernetes 创立集群(例如,Rancher 集群),将线下集群接入注册集群。具体操作,请参见创立注册集群并接入本地数据中心集群;
- 云上通过 ACK 创立托管版集群,部署备份服务组件;
- 云下纳管集群(即注册集群)装置备份组件,并通过备份核心备份线下集群的利用及 PV 数据,具体操作,请参见创立备份工作;
- 在云上 ACK 集群中,通过备份核心使云下利用和数据的备份,在云上进行复原。
在数据搬迁局部,牢靠迁徙是要害。目前备份核心反对的云下存储类型为:
- 数据中心本地块存储 SAN、Ceph OBD 及本地盘 LVM 等。
- 数据中心文件系统 HostPath、NFS、NetApp、GlusterFS 及 CephFS 等。
- 数据中心本地对象存储 Ceph S3 等。
通过备份核心,能够将云下 Kubernetes 利用及 PV 数据迁徙到 ACK 集群,实现顺利云原生化革新。
数据、利用迁云实现后,须要进一步适配监控、日志等组件,待各个组件调试结束通过验收后,能够应用智能 DNS 进行生产流量的切割。
利用革新和优化
对于利用革新和优化这部分,Kubernetes 到 Kubernetes 的场景下,须要优化的是去适配主动扩容等自建 Kubernetes 不具备的那些能力,在传统利用迁徙到 ACK 的场景下,这部分的工作量会更大些,所以咱们针对这个场景也输入了一些计划,比方相似于异地多活的计划,咱们把用户传统应用环境,通常是虚拟机或者裸机环境集成到线上 ACK 部署的 Istio 网格中,逐渐革新利用直至业务全副切换到线上 ACK 集群。
在利用逐渐革新的这个过程中,会波及到利用如何容器化、网络环境如何迁徙以及数据迁徙的问题,利用容器化这个问题,咱们能够应用 SMC 迁云核心来实现虚拟机转换为容器镜像的过程,网络这部分能够通过 iptables,External,CoreDNS PrivateZone 等形式对 IP 地址 DNS 域名做解决,放弃原先的逻辑 IP 和域名不变,并通过 Istio 实现网络虚构路由和可观测性的治理。
案例和总结
最初列举的是局部迁云案例,其中有对高性能网络有非凡需要的用户,有做深度学习相干业务对大规模 GPU 机器有需要的用户,也有要求裸金属机型服务器的用户等等。
以上这些不同用户的不同业务场景在云原生化迁云计划的设计和落实上都有各自的差异性,不尽相同,须要联合 ACK 团队积淀下来的最佳实际来疾速做出评估和打算,并借助已有的一系列迁云工具疾速实现业务从线下迁徙上云的过程。
其余
ack-image-builder 可能帮忙用户制作合乎 ACK 集群节点要求的自定义镜像
sync-repo 可能帮忙用户疾速实现容器镜像批量迁徙至 ACR(容器镜像仓库服务)
跨集群复原 Kunbernetes 利用备份核心可能帮忙用户疾速把其余云厂商或者自建 Kubernetes 集群下的残缺利用迁徙至 ACK 集群
相干链接
1)ACK(阿里云容器服务 Kubernetes):
https://cs.console.aliyun.com…
2)derrick:
https://github.com/alibaba/de…
3)ack-image-builder:
https://github.com/AliyunCont…
4)sync-repo:
https://github.com/AliyunCont…
5)ACR(容器镜像仓库服务)
https://cr.console.aliyun.com…
6)备份核心
https://help.aliyun.com/docum…
7)Rancher 集群
https://rancher.com/docs/ranc…
8)创立注册集群并接入本地数据中心集群
https://help.aliyun.com/docum…
9)创立备份工作
https://help.aliyun.com/docum…
10)ack-image-builder
https://github.com/AliyunCont…
11)sync-repo
https://github.com/AliyunCont…
12)ACR(容器镜像仓库服务)
https://cr.console.aliyun.com…
13)跨集群复原 Kunbernetes 利用
https://help.aliyun.com/docum…
👇👇点击 此处,即可查看容器服务 ACK 产品详情!
近期热门
# 云原生加速器,为你而来 #
就等你了!赶快点击下图理解详情吧~