2020年3月10日,VMware 发布了vSphere 7,我很高兴终于能够描述为什么它是真正适用      于混合云的技术!

VMware 在去年 VMWorld 介绍了云原生组合 Tanzu 和太平洋项目(Project Pacific)。3月11日,VMware 发布了近10年来最重要的一个版本:vSphere 7,包含众多的新功能。其中最引人注目的更新当属在 vSphere with Kubernetes (VwK) 功能,原生支持 Kubernetes 平台,实现了虚机和容器混合管理的能力,使 vSphere 成为全新的现代化应用开发运维平台。
vSphere with Kubernetes, 即之前的太平洋项目,对 vSphere 进行了多项的重构,引入了 Kubernetes 的概念和架构,以应用为中心,让开发人员和运维人员从不同的视图使用系统,带来里程碑式的革新。
VwK 在 VMware 公司内部已孕育了3年有多,目标深远、工程浩大,Kubernetes 联合创始人 Joe Beda 直接指导,上百名精英工程师投入研发,现在终于如约而至,重磅推出。
%title插图%num

我们一起来看看 vSphere with Kubernetes 的细节吧。

vSphere 集群转变成 Kubernetes 集群

vSphere with Kubernetes 是 vSphere 7 里面一个功能选项,管理员可在 vCenter 里启用这个选项,然后可选择 vSphere 集群激活 VwK 功能。
在启用 VwK 后,vSphere 集群中会部署 3 台虚拟机,每台虚拟机部署 Kubernetes 的 Master 节点,组成高可用的本地控制平面 (Local Control Plane) ;接着在每个 ESXi 节点的内核运行一个 Kubelet 进程(称作 Spherelet ),使 ESXi 成为 Kubernetes 的 Worker 节点。这样改造之后,vSphere 集群华丽转身成为支持现代应用 Kubernetes 集群。这个 vSphere 集群称为 “Supervisor Cluster”(主管集群)。
把 vSphere 集群转换为 Kubernetes 集群的好处之一,就是系统服务可以跑在这个主管集群之上,使得系统服务的升级、重启等生命周期管理可以依照 Kubernetes 的 Pod 方式进行,更加灵活;同时具备隔离性好,安全性高、HA保护等特性。

vSphere 7 提供的系统服务统称为 VMware Cloud Foundation (VCF)服务。分为3类。

第一类是Tanzu 运行时服务,主要包含 Tanzu Kubernetes Grid (TKG) 服务。TKG 服务用来管理用户态的 Kubernetes 集群,称作 Tanzu Kubernetes Cluster (TKC),可用于运行用户的应用。TKG 在部署 TKC 集群之前,首先创建组成 TKC 集群的虚拟机,虚拟机启动后,由预置在虚机模板里的 Kubeadm 程序部署 Kubernetes 节点。当所有虚拟机都成为 Kubernetes 节点时,集群部署完成。

 

第二类是混合基础架构服务,提供 Kubernetes 所需要的基础设施,如虚拟机、存储、网络、镜像仓库和 vSphere Pod 等。这些服务使 TKC 可以通过标准接口(如CNI, CSI等)访问基础设施资源。

 

第三类是定制服务,有合作伙伴或者用户自行开发部署,其原理和前两种相同。此次发布的 vSphere 版本暂时不支持这类服务,将在后续版本中提供。

%title插图%num

vCenter API 转为 Kubernetes API

经上述重构之后的主管集群和 Kubernetes 集群已经有几分形似了。要做到十全十美的神似,还有关键一步:支持 Kubernetes 的 API 。为此,VwK 对 vSphere API 进行了封装和改进,向开发者呈现出 Kubernetes API 。
这个 vSphere 版的 Kubernetes API 可谓青出于蓝,除了能管理 Pod 之外,还能够管理 vSphere 的所有基础设施资源,例如虚拟机、存储、网络、容器镜像等。
这里的秘诀要归功于 Kubernetes 的声明式接口和 CRD (Custom Resource Definition)的扩展形式。基础设施的资源可以用 CRD 表示,如上文中的网络、存储、TKC 等都有相应的 CRD。
用户只需要编写 yaml 格式的文件(一种简洁的文本文件),声明所需要的 CRD 资源,通过 kubectl 命令即可创建和维护 vSphere 的资源了。
熟悉 Kubernetes 的同学都知道,管理 CRD 资源一种较好的方法是通过 Operator 模式。Operator 实际上是运行在 Kubernetes 上的程序,负责管理特定 CRD 资源的生命周期。在 vSphere 的主管集群里面,运行着不少各施其职的 Operator,分别担负起集群、虚机、网络、存储等资源的管理任务。
因为 Operator 是开源和开放的架构,合作伙伴还可以开发定制化的 Operator,实现更丰富的功能。后面还会提到。
%title插图%num

附 ESXI 7.0ISO 下载链接和ESXI激活密钥



微信扫描下方的二维码阅读本文

%title插图%num

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注