CRX虚拟主机- 最佳化容器运作环境

在过去的vSphere虚拟化基础架构中,管理人员若要建立Kubernetes丛集,必须在ESXi虚拟化平台中透过「Hypervisor」机制,将底层x86硬体伺服器资源抽象化后,提供给上层VM虚拟主机使用,然后在VM虚拟主机中安装Linux作业系统,再建构Kubernetes丛集并运作容器等工作负载,接着透过vSphere丛集提供硬体资源,给上层传统VM虚拟主机和容器进行资源调度,如图12所示。

图12 传统Kubernetes运作在vSphere虚拟基础架构功能比较示意图。(图片来源:Cloud Native Apps Blog – Kubernetes Introduction for VMware Users – Part 1)

现在,新版的vSphere 7 with Kubernetes运作架构,则采用新世代丛集运作架构「Supervisor」。简单来说,过去vSphere虚拟化基础架构仅能建构传统的Kubernetes丛集,而Supervisor Cluster新世代丛集,则内建整合于ESXi中并将传统管理工具Kubelet整合为「Spherelet」。

值得一提的是,在Supervisor Cluster中运作的vSphere Pod,以及vSphere Pod内运作的1个或多个容器,都是在独立的VM虚拟主机中运作称为「CRX」,除了提供容器更好的安全性隔离环境之外,因为CRX虚拟主机采用「Container Runtime for ESXi」的设计,包括Linux核心也都经过最佳化调校,所以能为容器工作负载提供最佳运作环境,如图13所示。

图13 CRX虚拟主机运作架构示意图。(图片来源:VMware vSphere Blog – vSphere 7 – vSphere Pods Explained)

在vSphere Pod运作规模的部分,每个Supervisor Cluster最多可运作8,000台CRX虚拟主机,每台ESXi成员主机可运作1,000台CRX虚拟主机,如图14所示。在CRX虚拟主机方面,它能够在「100ms」内便启动完成,相较于在传统VM虚拟主机内安装Linux作业系统,并组态设定Container Runtime是很难达成的。最后,在VMware官方测试结果中,CRX虚拟主机内的容器运作Java工作负载时,相较于传统的Kubernetes Pod传输量多出「30%」,相较于裸机运作的Linux主机也多出「 8%」的效能。

图14 vSphere Pod、CRX虚拟主机、容器运作架构示意图。(图片来源:VMware vSphere Blog – vSphere 7 – vSphere Pods Explained)

Author: bwg