Categories
程式開發

vSphere 7 FusionKubernetes,打造現代化應用的平台



{“ type”:“ doc”,“ content”:[{“type”:”paragraph”,”attrs”:{“indent”:0,”number”:0,”align”:”center”,”origin”:null},”content”:[{“type”:”text”,”marks”:[{“type”:”size”,”attrs”:{“size”:10}}],“ text”:“”題圖攝於加州Monterey:黎明中的太平洋“}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”marks”:[{“type”:”size”,”attrs”:{“size”:10}},{“type”:”color”,”attrs”:{“color”:”#9254DE”,”name”:”purple”}}],“ text”:“ VMware最新產品vSphere 7正式發布,致力於打造現代化應用平台,備受用戶關注的目光和期待。這裡帶你深入了解vSphere 7的原生Kubernetes功能,歡迎閱讀。(本文僅代表作者個人觀點) 。)“}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”VMware 在去年 VMWorld 介绍了云原生组合 Tanzu 和太平洋项目(Project Pacific)。3月11日,VMware 发布了近10年来最重要的一个版本:vSphere 7,包含众多的新功能。其中最引人注目的更新当属在 vSphere with Kubernetes (VwK) 功能,原生支持 Kubernetes 平台,实现了虚机和容器混合管理的能力,使 vSphere 成为全新的现代化应用开发运维平台。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”vSphere with Kubernetes, 即之前的太平洋项目,对 vSphere 进行了多项的重构,引入了 Kubernetes 的概念和架构,以应用为中心,让开发人员和运维人员从不同的视图使用系统,带来里程碑式的革新。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”VwK 在 VMware 公司内部已孕育了3年有多,目标深远、工程浩大,Kubernetes 联合创始人 Joe Beda 直接指导,上百名精英工程师投入研发,现在终于如约而至,重磅推出。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”我们一起来看看 vSphere with Kubernetes 的细节吧。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”marks”:[{“type”:”strong”}],“ text”:“ vSphere實施轉變成Kubernetes的發展”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”vSphere with Kubernetes 是 vSphere 7 里面一个功能选项,管理员可在 vCenter 里启用这个选项,然后可选择 vSphere 集群激活 VwK 功能。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”在启用 VwK 后,vSphere 集群中会部署 3 台虚拟机,每台虚拟机部署 Kubernetes 的 Master 节点,组成高可用的本地控制平面 (Local Control Plane) ;接着在每个 ESXi 节点的内核运行一个 Kubelet 进程(称作 Spherelet ),使 ESXi 成为 Kubernetes 的 Worker 节点。这样改造之后,vSphere 集群华丽转身成为支持现代应用 Kubernetes 集群。这个 vSphere 集群称为 “Supervisor Cluster”(主管集群)。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ image” ,“ attrs”:{“ src”:“ https://static001.geekbang.org/infoq/a7/a75f44d124ec65dd86769a51662508c4.jpeg”,“ alt”:null,“ title”:null,“ style”:null,“ href “:null,” fromPaste“:true,” pastePass“:true}},{” type“:” paragraph“,” attrs“:{” indent“:0,” number“:0,” align“:null, “ origin”:null}},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content” :[{“type”:”text”,”text”:”把 vSphere 集群转变成 Kubernetes 集群”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”把 vSphere 集群转换为 Kubernetes 集群的好处之一,就是系统服务可以跑在这个主管集群之上,使得系统服务的升级、重启等生命周期管理可以依照 Kubernetes 的 Pod 方式进行,更加灵活;同时具备隔离性好,安全性高、HA保护等特性。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”vSphere 7 提供的系统服务统称为 VMware Cloud Foundation (VCF)服务。分为3类。”}]},{“ type”:“ image”,“ attrs”:{“ src”:“ https://static001.geekbang.org/infoq/9c/9c155fb76d0c66abc46680ba91030270.png”,“ alt”:null,“ title”: null,“ style”:null,“ href”:null,“ fromPaste”:true,“ pastePass”:true}},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number “:0,” align“:” center“,” origin“:null},” content“:[{“type”:”text”,”text”:”主管集群的服务(*为实验性功能,**为 roadmap 功能)”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”第一类是 Tanzu 运行时服务,主要包含 Tanzu Kubernetes Grid (TKG) 服务。TKG 服务用来管理用户态的 Kubernetes 集群,称作 Tanzu Kubernetes Cluster (TKC),可用于运行用户的应用。TKG 在部署 TKC 集群之前,首先创建组成 TKC 集群的虚拟机,虚拟机启动后,由预置在虚机模板里的 Kubeadm 程序部署 Kubernetes 节点。当所有虚拟机都成为 Kubernetes 节点时,集群部署完成。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”第二类是混合基础架构服务,提供 Kubernetes 所需要的基础设施,如虚拟机、存储、网络、镜像仓库和 vSphere Pod 等。这些服务使 TKC 可以通过标准接口(如CNI, CSI等)访问基础设施资源。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”第三类是定制服务,有合作伙伴或者用户自行开发部署,其原理和前两种相同。此次发布的 vSphere 版本暂时不支持这类服务,将在后续版本中提供。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”marks”:[{“type”:”strong”}],“ text”:“ vCenter API轉換為Kubernetes API”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”经上述重构之后的主管集群和 Kubernetes 集群已经有几分形似了。要做到十全十美的神似,还有关键一步:支持 Kubernetes 的 API 。为此,VwK 对 vSphere API 进行了封装和改进,向开发者呈现出 Kubernetes API 。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”这个 vSphere 版的 Kubernetes API 可谓青出于蓝,除了能管理 Pod 之外,还能够管理 vSphere 的所有基础设施资源,例如虚拟机、存储、网络、容器镜像等。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”这里的秘诀要归功于 Kubernetes 的声明式接口和 CRD (Custom Resource Definition)的扩展形式。基础设施的资源可以用 CRD 表示,如上文中的网络、存储、TKC 等都有相应的 CRD。 “}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”用户只需要编写 yaml 格式的文件(一种简洁的文本文件),声明所需要的 CRD 资源,通过 kubectl 命令即可创建和维护 vSphere 的资源了。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”熟悉 Kubernetes 的同学都知道,管理 CRD 资源一种较好的方法是通过 Operator 模式。Operator 实际上是运行在 Kubernetes 上的程序,负责管理特定 CRD 资源的生命周期。在 vSphere 的主管集群里面,运行着不少各施其职的 Operator,分别担负起集群、虚机、网络、存储等资源的管理任务。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”因为 Operator 是开源和开放的架构,合作伙伴还可以开发定制化的 Operator,实现更丰富的功能。后面还会提到。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:” “}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”marks”:[{“type”:”strong”}],“ text”:“增加CRX運行vSphere Pod”“}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”既然 vSphere 提供了 Kubernetes API,那么问题来了:vSphere能直接运行 Pod 吗?答案是肯定的。(注:Pod 是 Kubernetes 特有的运行应用的最小单元,由一个或数个容器组成。)”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”在 vSphere 7中,ESXi 内置了一个容器运行时(runtime),称作 CRX:Container Runtime for ESXi。CRX 运行 Pod 的时候,先创建一个虚机,然后在虚机内启动一个微小的 Linux 内核,大约 20-30MB 的样子。接着把容器镜像的文件系统挂载到虚拟机之中,最后执行镜像里面的应用。这样就启动了一个Pod 的应用。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:” “}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”用 CRX 运行的 Pod 是跑在一个轻量级虚拟机里面的,这个虚机称作 vSphere Pod (之前称为 PodVM)。vSphere Pod 是以虚拟机的方式产生,比基于 Linux  Container 的 Pod 隔离度更高,安全性更好。另一个好处是可以同时支持 Windows 容器,这点 Linux Container 无法实现。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ image” ,“ attrs”:{“ src”:“ https://static001.geekbang.org/infoq/ea/ea8a26bd33537eb1b7b0ccea014a4c2e.jpeg”,“ alt”:null,“ title”:null,“ style”:null,“ href “:null,” fromPaste“:true,” pastePass“:true}},{” type“:” paragraph“,” attrs“:{” indent“:0,” number“:0,” align“:null, “ origin”:null}},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content” :[{“type”:”text”,”text”:”ESXi 原生 Pod 的架构”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”上图黄色部分就是基于 CRX 的 vSphere Pod。在创建的时候, NSX 的 Kube Proxy 同步更新网络,存储 CNS 同步创建 VMDK 来绑定 vSphere Pod 需要的PV (Persistent Volume)。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”大家对 vSphere Pod 是否有种似曾相识的感觉?没错,VMware 之前的产品VIC 和开源项目 Kata Containers 都采用过类似轻量级虚拟机加载容器的技术。经过几年的积淀,已发展成为比较成熟的技术了。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”参加过 VIC 项目的核心工程师,大都在 vSphere 7 里面继续奋战。VIC 支持的是Docker API 和单容器,相比之下,vSphere with Kubernetes 支持 Kubernetes API 和 Pod (可多容器)。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”marks”:[{“type”:”strong”}],“ text”:“ TKC(應用開發)”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”前面介绍的主管集群(supervisor cluster)可直接用 Kubernetes API管理 vSphere 的资源,可以运行 Pod。但是需要指出的是,主管集群的并不是完全兼容 Kubernetes API 的,例如 privilege(特权) pod 在主管集群里面就不能使用。其次,主管集群的 Kubernetes 版本是相对固定的,不太可能频繁升级。还有一点,主管集群在每个 vSphere 集群里只有一个,多租户的场景中无法使用不同版本的 Kubernetes。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ image” ,“ attrs”:{“ src”:“ https://static001.geekbang.org/infoq/12/12d1e0eb38794478cfc29768ab7e3bfe.jpeg”,“ alt”:null,“ title”:null,“ style”:null,“ href “:null,” fromPaste“:true,” pastePass“:true}},{” type“:” paragraph“,” attrs“:{” indent“:0,” number“:0,” align“:null, “ origin”:null}},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content” :[{“type”:”text”,”text”:”TKC集群”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”为此,VwK 提供了 Tanzu Kubernetes Cluster (TKC) 集群,由前文所述的 TKG 服务管理。简单的说,就是部署在虚机里的 Kubernetes 集群,并且符合 CNCF的一致性 (Conformance)认证标准,可以兼容运行在 Kubernetes上的应用。TKC 集群可直接使用内置于主管集群中的 VCF 服务,可以很便捷地获取 Load balancer,PV 等资源。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”TKG 服务采用了 Kubernetes 社区的 Cluster API 开源项目。Cluster API 体现了“用 Kubernetes 管理 Kubernetes ” 的思想,即用户把需要创建的集群规范以 CRD 的形式提交给一个 Kubernetes 管理集群,该管理集群根据 CRD 去维护目标集群的生命周期。Cluster API 以 provider 的方式支持多种云服务商。在 vSphere 7 中,主管集群(Supervisor Cluster)就是管理集群,而且只有 vSphere provider。 “}]},{“ type”:“ image”,“ attrs”:{“ src”:“ https://static001.geekbang.org/infoq/1e/1e2092f40905bdc6d233c7d924ea8c03.jpeg”,“ alt”:null,“ title”: null,“ style”:null,“ href”:null,“ fromPaste”:true,“ pastePass”:true}},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number “:0,” align“:null,” origin“:null}},{” type“:” paragraph“,” attrs“:{” indent“:0,” number“:0,” align“:” center “,” origin“:null},” content“:[{“type”:”text”,”text”:”Cluster API:用K8s管理K8s”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”marks”:[{“type”:”strong”}],“ text”:“命名空間(命名空間)應用視圖”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph”,“ attrs”:{“ indent”: 0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”之前提到,VwK 为应用提供了单独的视图,称作 Namespace(命名空间)。Namespace 是计算机科学里广泛使用的概念,用来区分不同的逻辑功能或实体,如编程语言里面的 namespace ,Linux 的 namespace,容器 registry 里面的 namespace 等等。VwK 在主管集群中借鉴并扩展了 Kubernetes 划分虚拟集群的概念 namespace 。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ image” ,“ attrs”:{“ src”:“ https://static001.geekbang.org/infoq/7a/7a3d3a210c966152d250af15cfbb176f.jpeg”,“ alt”:null,“ title”:null,“ style”:null,“ href “:null,” fromPaste“:true,” pastePass“:true}},{” type“:” paragraph“,” attrs“:{” indent“:0,” number“:0,” align“:null, “ origin”:null}},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content” :[{“type”:”text”,”text”:”Namespace 和主管集群、SDDC 的关系”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”Kubernetes 的 namespace 对应用做了逻辑上的隔离,形成虚拟集群,优点是每个 namespace 可以单独设置资源管理策略,如统一控制网络访问策略。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”VwK 在主管集群中增设了namespace ,可以包括容器、虚拟机和 vSphere Pod 等资源。应用所需的资源,如 Pod 和虚拟机等,都收纳于一个 namespace 之下。由于 Namespace 是面向应用的逻辑单元,只需要对 namespace 配置 Quota, HA, DRS,网络、存储、加密和快照等策略,就可以对应用的所有虚拟机和 Pod 等资源进行管控,大大方便了运维管理。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”从技术实现的角度看,当管理员创建 namespace 的时候,vSphere 自动在后台创建一个对应的资源池 (Resource pool),对应着 namespace里的所有资源。之后对 namespace 的管控实质上都是转化为资源池的操作。”}]},{“ type”:“ image”,“ attrs”:{“ src”:“ https://static001.geekbang.org/infoq/60/60f97df622ea037598942bba064be4c2.jpeg”,“ alt”:null,“ title”: null,“ style”:null,“ href”:null,“ fromPaste”:true,“ pastePass”:true}},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number “:0,” align“:” center“,” origin“:null},” content“:[{“type”:”text”,”text”:”Namespace由 Resource pool支持”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”Namespace 是 VwK 的一项创新,定义了管理员和开发人员的边界,实现面向应用的管理,提高了新应用的开发效率。管理员在 vCenter 创建 namespace 后,可交给开发人员使用。开发人员用 Kubernetes API 在 namespace 中创建应用所需虚拟机、vSphere Pod,或者 Kubernetes 集群 (TKC 集群)等资源,不再需要管理员的介入。管理员只需要管理好 namespace 的资源策略,即使开发团队在里面呼风唤雨,翻天覆地,管理员也可高枕无忧了。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”marks”:[{“type”:”strong”}],“ text”:“內置港口註冊中心”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”Harbor Registry 中国用户一定不会陌生,VwK 的镜像仓库服务由 Harbor 开源镜项目提供,确保镜像安全和提高性能。当创建 namespace 时,会同时建立一个 Harbor 的项目与其对应,提供该 namespace 下的镜像服务。这个设计理念我们团队已经构思很久,现在终于体现在 vSphere 里面了。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:” “}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”marks”:[{“type”:”strong”}],“ text”:“萬事皆服務”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”Kubernetes 的联合创始人 Joe Beda 说过一句经典的话:“ Kubernetes 是平台的平台,可以用来构建新的平台”。这句深刻地阐明了 Kubernetes 创建者对产品的定位和设计理念。Kubernetes 不仅可管理容器编排服务,还可以通过扩展,管理其他服务,如数据库、函数服务、人工智能服务等等。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”这个理念在 vSphere with Kubernetes 里面得到了充分体现:vSphere 平台可以构建各类服务( XXX as a Service )。我们只需在主管集群里面部署特定服务的 Operator ,就可以用该 Operator 运维相应的服务。”}]},{“ type”:“ image”,“ attrs”:{“ src”:“ https://static001.geekbang.org/infoq/bb/bb0df95282dd46a8c567a16db921940a.jpeg”,“ alt”:null,“ title”: null,“ style”:null,“ href”:null,“ fromPaste”:true,“ pastePass”:true}},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number “:0,” align“:” center“,” origin“:null},” content“:[{“type”:”text”,”text”:”主管集群成为控制平面,可管理各种服务”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”上面提到的 TKC 集群实质上就是 Kubernetes as a Service,它的 Operator 已经内置在主管集群中。同样的,我们也可以部署 VM as a Service, MySQL as a Service 等服务的 Operator,达到管理这些服务的目的。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”Operator 是开放架构,合作伙伴可以开发出各类功能的服务,并且部署和运行在主管集群中,这将使得围绕 vSphere 的生态系统百花齐放,成为名副其实的“平台的平台”。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:” “}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”vSphere with Kubernetes 使 vSphere 蜕变成改变游戏规则的新一代现代化应用平台,无疑是VMware Tanzu 组合中最闪亮的组件。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”VMware 本次新产品发布还包括 Tanzu 套件,VCF 4等产品。大家可关注官网,或者留意笔者后续的文章介绍。”}]},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null}},{“ type”:“ paragraph” ,“ attrs”:{“ indent”:0,“ number”:0,“ align”:null,“ origin”:null},“ content”:[{“type”:”text”,”text”:”要想了解更多云原生和人工智能等技术原理,请立即长按以下二维码,关注本公众号”},{“type”:”text”,”marks”:[{“type”:”strong”}],“ text”:“亨利筆記”},{“ type”:“ text”,“ text”:“,以免錯過更新。”}]},{“ type”:“ image”,“ attrs”:{“ src”:“ https://static001.geekbang.org/infoq/45/45597820c04d8d3184688de59cd22099.png”,“ alt”:null,“ title”: ““,“樣式”:[{“key”:”width”,”value”:”25%”},{“key”:”bordertype”,”value”:”none”}],“ href”:“”,“ fromPaste”:false,“ pastePass”:false}},{“ type”:“ paragraph”,“ attrs”:{“ indent”:0,“ number”:0,“ align “:null,” origin“:null}},{” type“:” paragraph“,” attrs“:{” indent“:0,” number“:0,” align“:null,” origin“:” br “}}]}