2月12日,VMware 正式发布了和 Pivotal 联合开发的企业级容器平台 VMware Pivotal Container Service 1.0 (简称 PKS) , 为什么缩写不叫 PCS 而叫 PKS 呢?其中的 K 代表 Kubernetes (K8s),PKS 也就是 Pivotal Kubernetes Service 的意思。大家都知道 K8s 是开源社区里最流行的自动化容器调度平台之一,PKS 是基于 K8s 开发的一个商用的企业级容器调度平台,它显著简化了 K8s 集群部署和运维的难度。PKS 既可以被部署在 vSphere 虚拟化平台上,也可以被部署在 VMware Cloud 云平台上,PKS 在正式发布之前也获得了 Cloud Native Computing Foundation 的 Kubernetes Software Conformance Certification 认证。
PKS 1.0 主要包括以下功能:
- 基于开源项目 K8s 的最新稳定版本构建 – 第一个版本基于 K8s 1.9.2,开发人员可以访问所有的 K8s API。
- 为容器提供高级网络和安全功能 – 内置新一代网络虚拟化产品 NSX-T ,为容器提供微分段、负载均衡、安全策略等高级网络功能。
- 安全容器仓库 – 内置 VMware 开发的开源容器映像仓库 Harbor,能够提供对容器映像进行安全漏洞扫描、 映像签名和审计等功能。
- 即时调配 – 开发人员能够根据需要快速地创建 K8s 集群。
- 高可用 HA – PKS 中的 BOSH 会监控 K8s 集群的运行状况,保证架构到应用整体的高可用性。
- 访问 Google Cloud Platform (GCP) Services – 开发人员能够通过内置的 GCP Service Broker 方便地访问 GCP 服务。
- 持久性存储 – 支持在 K8s 集群中部署无状态 (stateless) 的或有状态 (stateful) 的应用。
PKS 的管理平台
PKS 的控制管理平台是基于 Pivotal 和 Google 联合开发的项目 Kubernetes on BOSH (简称 Kubo),Kubo 以 BOSH 为基础增强了对于 K8s 平台的部署和管理功能。BOSH 是 VMware 开发的分布式服务部署管理平台,最初用于 Cloud Foundry 平台的部署,也可以用于在 vSphere、AWS 或 OpenStack 等 IaaS 产品上部署分布式服务。Kubo 不仅用于 K8s 平台的初始部署,实现 K8s 集群和网络环境的自动配置;也用于 K8s 平台的后续维护监控,可以提供诸如健康检查、自我修复等功能来实现 HA 等生产级的能力。2017 年底,Kubo 被捐献给了 Cloud Foundry 基金会,改名为 Cloud Foundry Container Runtime (CFCR)。
PKS 非常注重跟 K8s 发行版本的持续兼容 (Constant Compatibility),从而让用户能够享受到 K8s 最新版本的功能、补丁和工具。 PKS 通过跟 Google Kubernetes Engine (GKE) 的同步来实现持续兼容,GKE 是运行在谷歌云上的 K8s 发布服务,PKS 通过 GKE 来导入最新的 K8s 发行版本。这种兼容性保证了开发人员在 PKS 上开发的代码可以在所有基于 K8s 的容器平台上运行,并且可以随时用到最新版本的功能。
内置 NSX-T 提供虚拟网络功能
PKS 中内置了新一代网络虚拟化产品 NSX-T ,为容器提供微分段、负载均衡、安全策略等高级网络功能。NSX-T 是 NSX 的新一代产品,产品代号变形金刚 Transformer,所以在产品名字中放了一个 T,以示与前一代产品 NSX 的区别。NSX-T 为容器和 Pod 提供了从层2到层7的完整网络服务,在基础的 K8s 网络功能上提供额外的高级网络功能,如网络微分段、随需网络调配、负载均衡、网络安全、多租户隔离等,从而为容器应用的部署和开发提供最大的便利。
容器映像仓库 — Harbor
Harbor 是由 VMware 开发的一个开源的企业级容器映像仓库,用于存储和发布容器映像,它提供了生产级的身份认证和基于角色的访问控制来保证容器映像的安全访问,同时也能够对容器映像进行安全漏洞扫描,提供可信映像服务和映像复制服务。Harber 让容器映像能够被安全地下载到 K8s 集群中来运行,为持续集成和持续交付开发提供生产级的映像存储。开发人员完成开发后能够把完成的容器映像推送到映像仓库中,从而实现自动化的软件发布。被推送上来的容器映像会进安全漏洞扫描和验证数字签名,只有被通过检查后才能被部署到 K8s 集群中去运行。这种方式既满足了开发人员快速交付应用的需求,同时也给 IT 团队更多的控制手段来满足企业对于信息安全方面的规定。当然,虽然我们推荐 Harbor ,PKS 也可以使用其他的容器映像仓库。
GCP Service Broker
PKS 内置了 Google 云服务 GCP (Google Cloud Platform) 的服务代理 GCP Service Broker,它的作用是让开发人员能够直接调配和使用 GCP 服务,访问 GCP 服务的用户认证等参数则由管理员统一设定,开发人员只需要使用 kubectl 命令 (或调用 API) 来创建和管理 GCP 服务实例就行了。GCP Service Broker 支持各种 GCP 订阅服务,如:Google Cloud Storage、Google BigQuery、Google Stackdriver 等等,这些服务可以直接被 PKS 集群内的容器应用所访问。
持久性存储
PKS 集成了持久性存储的方案 Project Hatchway,通过VMware vSphere Storage for Kubernetes 插件来为容器提供基于 vSphere 存储的 K8s 存储基元 (storage primitive),包括 volumes、persistent volumes、persistent volumes claims、storage classes 和 stateful sets。同时该插件也为 K8s 集群带来了很多企业级的存储特性,例如能够使用 vSAN 上基于策略的存储管理机制 SPBM (Sotrage Policy Based Management)。PKS 的持久性存储方案使得 K8s 集群不仅能够支持无状态 (stateless) 应用,也能够支持有状态 (stateful) 应用。
VMware PKS (图中红框内部分) 和其他 VMware 组件的关系
除了自身的优势之外,PKS 依托 VMware 云计算基础架构,能够为容器应用提供更为安全、可靠的运行环境。如上图所示,PKS 是红框中的那一部分,它可以运行在 vSphere 和 vSAN 平台上,充分利用 vSphere 提供的高可靠虚拟化运行环境和 vSAN 提供的高性能存储;同时,VMware 的云管平台 vRealize 提供了完整的运维、自动化、成本分析等云计算平台管理功能,让 PKS 集群的管理更加高效、简便。
文中涉及了很多 Kubernetes 的概念,如果你对 K8s 不太了解的话,请阅读“写给 VMware 用户看的 Kubernetes 扫盲贴”。