前天,VMware的一则线上发布会
向全球宣告了其拥抱K8s的决心
新发布的vSphere 7
堪称十年来至大的一次演进
通过将vSphere从底层重构
用户从此能以ESXi管理VM的方式
来运用K8s的能力
毫无疑问,VMware的这一举动
将对IT行业带来重大影响
为什么整个IT行业都在关注K8s?
身处其中的你
是否也在使用或学习K8s呢?
今天我们来聊聊
从传统IT到虚拟化再到K8s的演变
为什么传统企业要K8s?
一直以来,很多传统企业都采用IasS来降低成本,加速IT基础架构的部署,并提高可用性。而PaaS也备受瞩目,很多人认为使用PaaS,开发人员只需关注上层应用的实现,而不用关心底层的系统和运行环境,并且也不需要考虑运维。
然而传统PaaS因为底层不够自动化,同时还进行了很多定制和限制,造成局限性太大,所以在传统PaaS上开发应用就相当于和这个PaaS平台绑定,业务难以迁移到其他平台,甚至于持续性开发都会成问题。因此,直到Docker和Kubernetes出现,这个问题才得以解决。
上面这张图展现了从传统部署到虚拟化部署再到容器部署的演进,以及它们之间的区别和联系。
传统部署时代
早期,我们在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界,这会导致资源分配问题。
例如,如果在物理服务器上运行多个应用程序,则可能会出现一个应用程序占用大部分资源的情况,结果,另一个应用程序的性能将下降。解决方案是在不同的物理服务器上运行每个应用程序。但是,这导致维护许多物理服务器的成本很高。
虚拟化部署时代
虚拟化允许用户在单个物理服务器的CPU上运行多个虚拟机(VM),应用程序在不同的VM之间相互隔离,并提供安全级别,一个应用程序的信息不能被另一应用程序自由访问。
虚拟化可以更好地利用物理服务器中的资源,并具有更好的可伸缩性,因为可以轻松地添加或更新应用程序,降低硬件成本等等。借助虚拟化,用户可以将一组物理资源呈现为一组一次性虚拟机。每个VM是一台完整的计算机,在虚拟化硬件之上运行所有组件,包括其自己的操作系统。
容器部署时代
容器类似于VM,它是一种内核轻量级的操作系统层虚拟化技术,其定义为一组受到资源限制,彼此间相互隔离的进程。容器具有自己的文件系统、CPU、内存、进程空间等。
当然,虚拟机和容器并不是谁要取代谁,而是两者有着不同的使用场景。虚拟机更擅长彻底隔离整个运行环境,如云服务商通常采用虚机技术隔离不同的用户。而容器通常用于隔离不同的应用,例如前端、后端以及数据库。
说了这么多,为什么容器在今天大受欢迎呢?是因为它们提供了额外的好处,例如:
- 极其轻量:只打包了必要的Bin/Lib;
- 秒级部署:根据镜像的不同,容器的部署大概在毫秒与秒之间(比虚拟机强很多);
- 易于移植:一次构建,随处部署;
- 弹性伸缩:Kubernetes、Swarm、Mesos这类开源、方便、好使的容器管理平台有着非常强大的弹性管理能力。
打个比方:
服务器虚拟化可以比喻成码头上的仓库:拥有独立的空间堆放各种货物或集装箱(仓库之间完全独立,有独立的操作系统和应用程序);
而容器可以比喻成集装箱:每个集装箱里包含各种货物(将各种应用程序和他们所依赖的运行环境打包成标准的容器,容器之间互相隔离)。如下图所示,一只鲸鱼(操作系统)上可以运送多个集装箱(容器)。
在物理机/虚拟机时代,不同应用之间通讯通过IP地址/DNS域名就可以实现。而到了容器时代,1个操作系统里有多个容器应用,那么如何去管理海量容器之间的映射关系,如何去管理海量容器扩展和收缩,这个问题摆在了用户面前。
因此出现了很多容器的资源管理平台,比如Apache Mesos/Docker Swarm,还有很多用户自行开发了管理平台。直到Google开源了Kubernetes(简称K8s) ,因K8s成熟度更高,企业级特性更丰富,目前K8s 成了容器编排管理平台的事实标准。
▲Docker的logo是一只鲸鱼上运载了很多集装箱(容器),而K8s的logo是一个舵盘,定位于作为鲸鱼的领航者。
K8s源自Google内部已经使用了15年的Borg的开源版,Borg上面运行着十万级的任务,数千个不同的应用,管理着数万台机器。其通过权限管理、资源共享、性能隔离等来达到高资源利用率。
它能够支持高可用应用,并通过调度策略减少出现故障的概率,提供了任务描述语言、实时任务监控、分析工具等。所以,对传统企业来说,落地K8s云平台有以下收益:
- 能够实现企业应用架构的云原生重塑;
- 软件开发流程的标准化(DevOps);
- 以应用为中心的标准化管理;
- 提高IT架构的效率(加快应用的发布、变更和故障修复);
- 促进企业实现数字化转型。
K8s的架构
K8s是一个主从分布式架构,主要由Master Node和Worker Node组成。Pod是K8s调度的小单元,一个Pod里可以有多个容器。
▐ API server:负责接入请求的入口,解析请求,处理请求,即网关,任何到达请求必须经过API server。
▐ scheduler:请求到达后,由scheduler计算后端Node的相关资源,如CPU或者内存使用情况后,负责调度到合适的Node,并启动Pod。
▐ controller-manager:控制器管理器,统一管控不同类型的资源,监控master上每个控制器的健康性。K8s上推荐使用控制器来管里Pod的生命周期。比如无状态用ReplicaSet和Deployment(推荐,功能更强);指定节点运行Pod用DeamonSet;有状态Pod用StatefulSet等。
VMware vSphere 7
现代化应用通常由很多种不同的技术组件组成,有些组件运行在容器中,有些组件运行在虚拟机中(如数据库),有时需要访问遗留系统,甚至有些需要访问FaaS。
这样的应用架构给开发人员带来了困扰,你不能只关注K8s,因为很多组件并没有运行在容器中。一旦部署了这样的应用程序,如何维护并更新它?可以使用哪些工具来监控、诊断和调试部署?
同样,基础设施部门也面临了新的问题。为了支持容器和虚拟机共存的应用,有些企业不得不在vSphere集群外搭建一套新的容器集群,这种做法引入了新的孤岛,并且多个集群的运维管理工具和方法是完全不同的,应用治理的策略也无法同步到两种类型的集群中。
现在,VMware vSphere 7与K8s融合在一起,使我们的客户能够在vSphere上加速现代应用程序的开发和运行。
vSphere 7提供以下功能:
支持原生K8s
通过将K8s嵌入到vSphere的控制平面中,IT运维可以从vSphere Client中查看和管理K8s对象(例如Pod)。
以应用为中心的管理
vSphere 7不再管理单个VM(包括容器),而将使用应用程序级控制,可以一次控制整个应用的资源分配、vMotion、加密、HA和快照,而不必单独配置每个虚拟机或者容器。
开发与IT运营协作
IT运维将使用vSphere工具将K8s集群交付给开发人员,然后开发人员可以使用K8s API访问SDDC基础架构。通过vSphere 7,开发人员和IT运维都可以获得统一的管理视图。
75%的组织将在生产环境运用容器
那么,如何保护数据?
随着K8s成为容器编排管理平台的的事实标准,越来越多的企业和组织开始将K8s运行在生产环境中。根据Gartner预测,到2022年,超过75%的全球组织将在生产环境中运行容器化的应用程序。因此IT部门需要同时管理物理机,虚拟机和K8s集群。
此时带来了一个新难题,如何针对这种混杂的环境数据保护?
在这里不得不提拥有全面数据保护解决方案的戴尔易安信,从连续可用、CDP、备份、长期数据保存到归档,戴尔易安信皆有相应解决方案。如此兼具深度与广度的产品组合,也得到了全球用户的认可,在IDC发布的2019 Q4全球数据备份和保护软件行业报告里,戴尔科技集团夺得了NO.1的位置,再次证明其无可争议的实力。
针对K8s,戴尔易安信推出了PowerProtect Data Manager解决方案,PowerProtect Data Manager是业内首先可以同时实现物理,虚拟和云原生,容器,开源数据库等新型应用企业级数据保护的解决方案,并可以实现重复数据删除,自助服务和IT治理。
除了支持传统数据库和文件备份恢复应用外,PowerProtect通过和VMware解决方案强强联手,实现管理集成化,实现对vSphere,vRealize和VMware Cloud的精细化数据保护。
针对K8s集群,通过PowerProtect的GUI和RESTAPI对K8s保护进行全面管理,实现对多个K8s集群的统一数据保护,以K8s命名空间(namespace)为粒度(K8s资源和持久卷)进行备份。
Data Domain在方案中将作为备份目标端,具有卓越的效率、重复数据消除和性能。支持Retention Lock——防误删、防篡改,避免备份文件被恶意删除或感染病毒。
Kubernetes正在呈现迅猛的发展势头,在采用Kubernetes的过程中,妥善实施数据保护解决方案至关重要。无论是IT运营团队还是开发团队,在Kubernetes中所做的工作都需要加以保护。PowerProtect Data Manager是在生产和Dev/Test环境中发现、保护和还原K8s容器的绝佳选择。
在线研讨会预告
今天上午
9:30-12:00戴尔科技将举办交通行业网络研讨会就机器学习在交通行业的应用以及如何释放交通海量数据价值等话题进行分享和介绍
欢迎观看下图了解会议详情
并扫码参会