容器与虚拟化的完美融合: VMware Project Pacific

2023-10-31 16:40

本文主要是介绍容器与虚拟化的完美融合: VMware Project Pacific,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

VMware Tanzu的三大组件

编者注:本周 VMworld 2019 大会上发布了众多的新技术产品,令人眼花缭乱、目不暇接。其中以 Tanzu 为主打的云原生产品和服务备受瞩目。Tanzu 这个名字对中国用户太亲近了, 按照拼音直接念即可:“叹组 ” -- 令人惊叹的云原生组件,很容易记忆。

Tanzu包含三个部分:构建(Build),运行(Run)和管理(Manage),本公众号将陆续介绍相关组件的技术细节,敬请留意。本期先解读容器和虚拟机结合的黑科技项目:Project Pacific。

本文由 VMware 资深方案架构师淡成翻译自 VMware 官博,并增加了译者的理解和补充,是了解 Project Pacific 的必读之作。

本周VMware发布了技术预览版的 Project Pacific,这项技术将为广大的企业私有云建设者提供新的思路。

Project Pacific给vSphere增加了一个新的控制平面,使用户可以用Kubernetes管理vSphere。对于开发人员来说,Project Pacific就像是一个增强的Kubernetes集群,可以使用Kubernetes声明式语法来管理虚拟机、磁盘和网络等资源。对于IT管理员来说,Project Pacific仍旧是vSphere,但是添加了以应用为边界的整体管理的能力,而不是单独管理许多个独立的组成应用的虚拟机或者容器。

Project Pacific可以利用企业现有的 SDDC 投资、人员技能和工具,加速vSphere 平台上现代化应用的开发和运营。通过利用 Kubernetes 作为 vSphere的控制平面,Project Pacific 允许企业利用一个融合的平台同时运行传统应用和现代化应用。

现代化应用的挑战

在企业环境中,现代化应用通常是由很多种不同的技术组件组成的,有些组件运行在容器中,有些组件运行在虚拟机中(如数据库),有时需要访问遗留系统,甚至有些需要访问FaaS。这些组件分布式的部署在不同的运行环境中,通常由不同的团队开发和维护。

企业环境现代化应用

这样的应用架构给开发人员带来了困扰,你不能只关注Kubernetes,因为很多组件并没有运行在容器中。一旦部署了这样的应用程序,如何维护并更新它?可以使用哪些工具来监控、诊断和调试部署?

同样,基础设施部门也面临了新的问题。为了支持容器和虚拟机共存的应用,有些企业不得不在vSphere集群外搭建一套新的容器集群,这种做法引入了新的孤岛,并且多个集群的运维管理工具和方法是完全不同的,应用治理的策略也无法同步到两种类型的集群中。

Kubernetes 作为平台的平台

Kubernetes 的联合创始人 Joe Beda 说过,“Kubernetes是一个平台的平台,可以用来构建新的平台”。是的,Kubernetes 是一个容器编排平台,但是依赖Kubernetes 的核心原则我们能够编排任何东西!如果我们用Kubernetes的方式重新架构vSphere,让 vSphere 运行在 Kubernetes 之上会是什么效果呢?那么,开发人员想要创建虚拟机、容器或 Kubernetes 集群,他们只需要编写一个Kubernetes YAML 文件并使用 kubectl 部署它,就像使用任何其他 Kubernetes 对象(Pod,service,ingress)一样。

使用Kubernetes作为vSphere API

通过这个理念,开发人员可以将Kubernetes良好的使用感受从云原生应用扩展到数据中心中的任何类型的应用。使他们可以轻松地部署和管理跨多个技术堆栈的现代化应用。

以应用为中心的管理

vSphere 提供了很多针对虚拟机的管理功能,vMotion、HA、snapshot、加密、配额管理、存储策略等。但现代化应用一般来说不是一个虚拟机,它可能是几十个虚拟机加上更多的容器。对于现代化应用来说,从整个应用层面实现以上的功能就比较困难了。

幸运的是,Kubernetes 带来了另一个可以解决这个问题的概念:Namespace。Kubernetes 中的 Namespace 是资源对象(容器、VM、磁盘等)的集合。如果我们使用 Kubernetes Namespace 来模拟现代应用,然后将针对虚拟机的管理功能在 Namespace 上实现,那么就可以一次控制整个应用的资源分配、vMotion、加密、HA和快照,而不必单独配置每个虚拟机或者容器。

Namespace作为管理单元

这对IT管理员有两个真正的变革性影响。

首先,我们认为这为IT管理员提供了巨大的生产力提升。过去,您可能在vCenter清单中有数千个虚拟机需要处理。但是,一旦将这些虚拟机分组到其逻辑所属的应用中,您可能只需要处理几十个Namespace。过去,如果您想加密应用程序,则必须先找到属于该应用程序的所有虚拟机,然后在每个虚拟机上启用加密。现在,您只需单击vCenter中Namespace上的按钮即可完成所有操作。您可以获得巨大的生产力提升,因为您可以处理应用而不是单个虚拟机。

其次,我们认为Namespace为开发人员提供了更好的自助服务模型。使用Namespace,IT管理员可以在Namespace上设置一次策略,然后将Namespace权限分配给开发人员,Namespace中的每个对象都将继承统一设置的策略。开发人员可以快速、自助的创建任何他需要的资源,虚拟机、容器、Kubernetes集群等,而IT只需要从应用的整体维度来确保资源的使用符合公司的策略。

Kubernetes 原生的 vSphere 平台

Project Pacific将Kubernetes控制平面直接集成到ESXi和vCenter中 - 使其成为ESXi的控制平面,并通过vCenter提供以应用为中心的管理功能。

Kubernetes原生的vSphere平台

Supervisor clusters

Supervisor cluster是一种特殊的Kubernetes集群,它将ESXi节点变成Kubernetes的worker node。这是通过将类似kubelet的agent(Spherelet)直接集成到ESXi中实现的。Spherelet不是虚拟机,它是ESXi上的一个进程。

把vSphere Cluster变成Kubernetes Cluster

ESXi Native Pods

部署在Supervisor上的Pod,每个Pod都在一个隔离的轻量级虚拟机中运行。这个轻量级的虚拟机就是CRX,包含一个Linux内核和最小容器运行时。

经过测试,ESXi可以在100毫秒内启动native pod,在单个ESXi主机上支持超过1000个pod。在我们的内部测试中,我们已经证明了ESXi Native Pods在SPECjbb2015基准测试中的吞吐量比虚拟机中的常规Pod高出30%,比裸机Linux上的Pod快8%!

虚拟机

Supervisor cluster提供VM operator,允许用户以Kubernetes的方式管理虚拟机。用户可以在一个yaml文件中描述虚拟机的部署规范和其所需的网络和存储资源。

VM Operator 对于私有云建设有着重大的业务价值,请参考另一篇文章(可点击): 新一代企业私有云建设的“底座”。

VM Operator只是作为vSphere管理虚拟机的补充,这意味着用户可以继续使用vSphere的所有功能,来管理Kubernetes置备出的虚拟机实例。

Guest cluster

虽然Supervisor cluster已经是一个Kubernetes集群,但是它的设计目标是用来管理vSphere,而不是通用的业务部署平台。这样设计的原因有以下几个,

  • Kubernetes的最佳实践是多集群,不同的租户使用不同规格(版本、规模)的集群。而一个vSphere的cluster就是一个Supervisor cluster,这种方式不符合最佳实践。当租户需要不同版本的Kubernetes的时候,Supervisor cluster不能够满足要求。

  • Supervisor cluster内置在vSphere中,只能随着vSphere版本的升级而升级。一般来讲,用户要求Kubernetes的版本可以随时升级,而不希望频繁的升级底层的vSphere。

  • 为了安全原因,Supervisor cluster禁止了privilege等一些特殊模式。而有些时候用户需要这些模式的集群。

Guest Clusters 很好的解决了以上的问题,Guest Clusters可以提供通用的Kubernetes给用户。Guest Cluster是一个Kubernetes集群,它在Supervisor Cluster上的虚拟机内运行。Guest Cluster是完全符合CNCF认证的Kubernetes,因此可以保证兼容任何运行在Kubernetes上的应用。

vSphere 中的 Guest Clusters 使用开源Cluster API项目来生命周期管理Kubernetes集群。

Guest Cluster

镜像仓库

为了运行容器,用户需要一个镜像仓库。因此,Project Pacific 将 Harbor 集成到vSphere 中,您可以从 vCenter 直接打开 Harbor 。每个Namespace都是 Harbor 中的一个 project 。

总结

Project Pacific 是 VMware 在Kubernetes 领域一个里程碑的发布。如果您想了解更多细节,敬请关注本公众号更多相关内容。

英文博客链接:

https://blogs.vmware.com/vsphere/2019/08/project-pacific-technical-overview.html


VMware招聘云原生开发工程师

(北京/上海)

VMware中国研发中心一直致力于前沿领域的创新工作,成功创立并开发了用户普遍使用的 Harbor 容器镜像仓库等开源项目,在国内云原生领域有着深远的影响力。为满足项目发展需要,现招聘 Staff Engineer 一名,需熟悉 Kubernetes平台,开发云原生为主、人工智能为辅的开源项目,涉及多个业界热门和超前的技术领域,和业界大咖合作、待遇优厚、一般不加班,出国学习交流机会,欢迎大家踊跃投递简历!

职位要求:

  • BS or above in Computer Science or equivalent.

  • 6+ years of industry work experience and hands-on development.

  • Experienced in one of modern programming languages such as Go, Python, Java, C++. 

  • Hands-on experience on cloud native technologies such as container, Docker and Kubernetes.

  • Experienced in Artificial Intelligence and Machine Learning is a plus, familiar with frameworks and projects, such as Kubeflow, Tensorflow, PyTorch, is a plus.

  • Good understanding on data center infrastructure like storage, networking and server.

  • Familiar with open source community, contribution to open source projects is a plus.

  • Experience on virtualization, knowledge on vSphere platform is a plus.

  • Excellent English and communication skills and capability of cooperating with remote peers.

 

请发简历:harbor@vmware.com

注明:云原生职位


相关文章:

Harbor技术沙龙活动-北京站(9月10日)

这篇关于容器与虚拟化的完美融合: VMware Project Pacific的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/316699

相关文章

Spring核心思想之浅谈IoC容器与依赖倒置(DI)

《Spring核心思想之浅谈IoC容器与依赖倒置(DI)》文章介绍了Spring的IoC和DI机制,以及MyBatis的动态代理,通过注解和反射,Spring能够自动管理对象的创建和依赖注入,而MyB... 目录一、控制反转 IoC二、依赖倒置 DI1. 详细概念2. Spring 中 DI 的实现原理三、

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

# VMware 共享文件

VMware tools快速安装 VMware 提供了 open-vm-tools,这是 VMware 官方推荐的开源工具包,通常不需要手动安装 VMware Tools,因为大多数 Linux 发行版(包括 Ubuntu、CentOS 等)都包含了 open-vm-tools,并且已经优化以提供与 VMware 环境的兼容性和功能支持。 建议按照以下步骤安装 open-vm-tools 而不

Debugging Lua Project created in Cocos Code IDE creates “Waiting for debugger to connect” in Win-7

转自 I Installed Cocos Code IDE and created a new Lua Project. When Debugging the Project(F11) the game window pops up and gives me the message waiting for debugger to connect and then freezes. Also a

【虚拟化】AIO主机安装PVE8,配置网络,安装win11(virtio,qcow2,scsi,oobe,adk)

【虚拟化】AIO主机安装PVE8,配置网络,安装win11(virtio,qcow2,scsi,oobe,adk) 文章目录 1、ESXI vs PVE,AIO主机系统二选一2、PVE网络配置(DNS,换源,网卡,https,概览)3、win11虚拟化配置(virtio,raw,qcow2)附,域名解析,rocky9.4,黑群晖 1、ESXI vs PVE,AIO主机系统二选

AI和新基建赋能智慧工地超融合管理平台解决方案

1. 项目背景与需求 电力行业的工程管理正朝着智慧化发展,但目前仍处于起步阶段。为满足数字化、网络化、智能化的发展需求,需要构建一个高效综合监控平台,实现对电力项目全过程的精益化管控。 2. 综合管理平台的构建 该平台集成了超融合实景监控、安全智能监测、公共安全防范、技术管理、人员管控和绿色施工等多个方面,通过BIM协同优化设计,提升项目质量和进度管理。 3. 安全智能监测的重要性 安全