近年来,容器技术的发展呈火爆态势,各行业的应用系统都在向容器化、微服务化的现代化的应用架构发展,以构建快速发布、弹性扩展的平台及应用系统。在CNCF对云原生的定义中,概括了具有代表性的技术包括容器、服务网格、微服务、不可变基础设施和声明式API。
昆仑联通紧跟行业趋势,几年前就开始在云原生领域投入技术资源。当前,公司拥有由多名CKA认证的工程师及CNCF社区贡献者组成的开发团队,可面向企业用户提供完整的企业级PaaS平台解决方案,以及应用容器化改造、DevOps体系建设咨询、CI/CD流程建设咨询、容器平台规划部署以及培训等服务,帮助企业更快速、更高效的实现容器技术的落地。
近年来,昆仑联通落地了很多容器相关的案例,客户涵盖车企、金融等各个行业,不仅提供了从咨询、实施到运维的一整套解决方案,而且真正帮助客户简化了容器技术的落地。
本次VMware新产品-vSphere 7的目标是打造一个同时支持传统应用和现代化应用的统一管理平台。昆仑联通依托强大的云原生团队以及多年容器经验,第一时间对vSphere 7做了测试。现针对vSphere 7的架构调整和功能应用, 昆仑联通首席云原生架构师为我们做了如下详细解读!首先我们先来看看vSphere 7都有哪些功能!
开放vSphere给更多的用户
在以往的IaaS平台管理中,主要是以运维团队向外交付虚拟机,应用管理者或开发人员基于虚拟机部署应用、数据库或Kubernetes集群,造成了管理上的分散和复杂性。
在vSphere7中专门为研发人员提供了管理平面,使研发人员以自服务的形式申请资源,可以对包括虚拟机、kubernetes集群或者是数据库服务等资源的统一申请和管理,更像是在使用一个公有云平台。运维人员则负载底层架构、安全性和可用性的管理。通过这种方式,使开发和运维人员能够在一个统一的平台上协作,避免了管理上的孤岛。
vSphere管理员
管理员可以在群集上创建包含内存、CPU和存储等资源的 namespaces并将这些 namespaces 提供给DevOps工程师;可以使用与常规VM相同的工具来管理和监视vSphere Pods和Tanzu Kubernetes群集;可以完全了解在不同 namespaces 中运行的vSphere Pods和Tanzu Kubernetes群集,以及它们在环境中的位置以及资源的消耗情况。
DevOps工程师
工程师可以在同一个平台上运行包含容器和VM的工作负载,并在namespaces中使用共享资源池。容器可以在vSphere Pod的特殊类型VM内运行,可以使用 VMware Tanzu 服务在一个 namespace 内创建和管理多个Kubernetes集群,并管理其生命周期。
在vSphere中以声明式交付所有资源
正如在上文中提到的,CNCF对云原生的定义中包含声明式交付。在vSphere 7的架构中,正是以种声明式的交付向用户提供资源。
从上图中可以看出,vSphere with Kubernetes 平台可以向用户提供 Kind 为 Pod 的 工作负载,当然这是Kubernetes本身就具有的基本功能,特别的地方在于 vSphere 7 使用Kubernetes的扩展机制,在原生的Kubernetes上扩展出更多的功能,这使vSphere管理员可以直接以声明的方式向用户提供一整套Kubernetes Cluster、Virtual Machine 以及 Database等。
通过这种形式,很好的解决了当前企业IT架构中,多种平台混合管理的复杂性,将虚拟机、数据库、应用以及Kubernetes集群归纳到一个平台进行统一管理。
以应用为边界进行管理
在以前的vSphere的管理模式中,是以单个虚拟机为管理单位,例如在对应用进行安全配置时需要对找到该应用所对应的VM和容器,一 一进行安全策略配置。为了简化管理的复杂性,在新的vSphere中提出了一个新的管理上逻辑层“应用”。在一个“应用”范围内可以包括虚拟机、Kubernetes集群、容器、数据库等。
vSphere 7 中可以以“应用”为管理边界,对整个应用范围进行资源配额、安全、可用性以及访问控制,策略的配置可以自动适配到“应用”范围内的所有资源,大大减化运维人员的管理工作。
通过以上几点,我们了解到了VMware vSphere 7给用户带来了一个全新的、现代化的应用管理平台。这个平台可以以“应用”为管理范围,让运维和开发人员参与其中,同时对多种类型的资源进行管理。
为了更好的理解vSphere 7,接下来我们了解一下 vSphere 7 的整体架构。
vSphere with K8S General Architecture
在vShpere with Kubernetes 上启动的集群称为主管集群(Supervisor Cluster),主管集群运行在ESXi计算节点之上,使用NSX-T网络、vSAN或其它共享存储解决方案。共享存储可用于vSphere Pods的持久卷,可以在Supervisor Cluster中运行VM,或创建Tanzu Kubernetes集群。
Supervisor Cluster Architecture
Kubernetes control plane VM:在启动Supervisor Cluster时会创建三个K8S Contorl Plane VM,这三个虚拟机实现负载均衡,vSphere DRS负责这三个虚拟机调度,在必要时进行自动迁移。vSphere DRS在K8S Contorl Plane VM中与Kubernetes Scheduler集成,当部署Pods时,Kubernetes Scheduler将工作流发送给DRS,由DRS完成调度。
在Supervisor Cluster的ESXi主机上会自动启动Spherelet,从名字上就可以看出Spherelet是从Kubernetes 的 kubelet移植过来的,可以让ESXi主机成为Kubernetes集群的一部分。
CRX:Container Runtime Executive,CRX中包含一个专门用于运行容器的Linux内核,CRX在启动时使用直接引导技术,在不进行内核初化的情况下直接启动nit过程,这使vSphere Pods的启动速度几乎与容器一样快。CRX与VM类似使用相同的硬件虚拟化技术,并且在CRX周围具有与VM相同的安全边界,
VM服务、Cluster API、Tanzu都是在Supervisor集群上运行的模块。
Supervisor Namespace
Namespaces可以定义资源的边界,并将其分配给租户进行管理。在Supervisor Cluster中可以创建多个Supervisor namespace并可以在Supervisor namespace中使用 Tanzu Kubernetes Grid服务创建vSphere Pods 和 Tanzu Kubernetes Cluster。
vSphere Pods
vSphere Pod 相当于 Kubernetes pod。vSphere Pod是具有较小占用空间的VM,可运行一个或多个Linux容器。每个vSphere Pod的大小都根据其可容纳的工作负载精确的确定大小,并具有针对该工作负载的资源预留及分配运行工作负载所需的CPU、内存和存储资源。
vSphere pods 的功能包括:
强隔离
每个vSphere Pod都有一个基于Photon OS 的 Linux内核,该内核提供Pod与vCenter Server中其他工作负载和对象的隔离,以保证安全性;
资源管理
使用vSphere DRS 在 Supervisor Cluster 中调度 vSphere Pod;
高性能
低开销和快速启动;
诊断程序
管理员可以对工作负载进行监视和检查。
vSphere Pods Networking and Storage
vSphere Pods根据所存储的对象使用三种类型的存储
临时VMDKs
持久卷VMDKs
容器镜像VMDK
vSphere管理员可以在Supervisor Cluster 级别配置存储策略,在Namespaces级别配置存储策略可以放置持久卷和Tanzu Kubernetes群集的VM。
对于网络,vSphere Pods和VM通过Tanzu Kubernetes Grid Service创建的Tanzu Kubernetes群集使用NSX提供的拓扑。
最后,我们可以看到一个更完整的架构图,一个基本 vSphere 7 的现代化的应用平台——“vSphere with Kubernetes”。
Tanzu Kubernetes Clusters
本文转载自:昆仑联通,如有侵权请联系站长删除。
推荐阅读:
深圳联通宽带、太原联通宽带、中山联通宽带、松原联通宽带、烟台联通宽带、青岛联通宽带、上海联通宽带、沈阳联通宽带、遵义联通宽带、长春联通宽带、长沙联通宽带、成都联通宽带、重庆联通宽带、厦门联通宽带、呼和浩特联通宽带、