在最近结束的 VMWorld 大会上,VMWare宣布了项目,这是一个重新架构版本的 vSphere,它在内部嵌入了 Kubernetes 的控制平面。Pacific 项目的目标是在 vSphere 安装环境中为容器和虚拟机提供统一的管理。开发人员可以使用 Kubernetes 声明语法来管理 VM、磁盘和网络。对于同时具备容器和 VM 异构技术栈的团队来说,这是非常有用的。但是,这只适用于 vSphere 托管 VM 上的已有应用。
Pacific 项目采用了Kubernetes 的 Namespace 模型,因此 VM 的操作和策略可以应用到 Kubernetes 对象上。这些操作和策略包括资源分配、加密、HA 和快照。据 vSphere 的 Workload Management 产品主管Jared Rosoff的介绍,Pacific 项目是“一个重新架构版本的 vSphere,使用 Kubernetes 作为其控制平面”,
集成有两个核心的组成部分,即 Kubernetes 代理和容器运行时,它们都是由自定义 vSphere 组件的形式提供的。在 Pacific 安装环境中,会运行一个特殊的 Kubernetes 集群,名为 Supervisor。它使用了 ESXi(vSphere 部署所使用的 hypervisor)来替代 Linux 节点。ESXi 节点上对应的 Kubernetes 代理被称为“Spherelet”。Spherelet基于名为Virtual Kubelet的项目,它主要用来连接 Kubernetes 和其他服务,提供了一个主机平台,pod 可以运行在上面。Virtual Kubelet 是由微软开源的,也用到了其他平台之中。
为了运行容器,ESXi 有一个名为 CRX 的容器运行时。Rosoff 指出,“CRX 就像一个虚拟机,它在 guest 中包含了一个 Linux kernel 和最小化的容器运行时。但是,因为这个 Linux kernel 是和 hypervisor 耦合在一起的,所以我们能够对其进行很多优化,从而有效地对容器进行半虚拟化(paravirtualized)。”CRX 使用了名为 Direct Boot 的技术技术,这样在初始化的时候不需要执行常见的 kernel 初始化和电源管理步骤。
因此,Pacific 环境可以运行两种类型的 pod,分别是 ESXi 托管主机上的原生 ESXi 和 supervisor 集群中在 VM 上运行的 pod。其中,后者被称为“guest 集群”,是一个vanilla Kubernetes集群。为了管理来自 Kubernetes 的 VM,supervisor 集群有一个操作器(operator)。这样允许在同一个 YAML 文件中混合容器和 VM 部署。操作器实现了与 vSphere 现有的生命周期管理服务的集成。
VMWare 还将 Harbor 容器注册表集成到了 vSphere 中。Harbor原来是 VMWare 的一个内部项目,后来开源了。Pacific 目前处于技术预览模式(technical preview mode)中。
原文链接:
VMWare’s Project Pacific Integrates Kubernetes With vSphere
评论 1 条评论