PKS 1.0 主要包括以下功能:
- 基于開(kāi)源項(xiàng)目 K8s 的最新穩(wěn)定版本構(gòu)建 – 第一個(gè)版本基于 K8s 1.8,開(kāi)發(fā)人員可以訪問(wèn)所有的 K8s API。
- 為容器提供高級(jí)網(wǎng)絡(luò)和安全功能 – 內(nèi)置新一代網(wǎng)絡(luò)虛擬化產(chǎn)品 NSX-T ,為容器提供微分段、負(fù)載均衡、安全策略等高級(jí)網(wǎng)絡(luò)功能。
- 安全容器倉(cāng)庫(kù) – 內(nèi)置 VMware 開(kāi)發(fā)的開(kāi)源容器映像倉(cāng)庫(kù) Harbor,能夠提供對(duì)容器映像進(jìn)行安全漏洞掃描、 映像簽名和審計(jì)等功能。
- 即時(shí)調(diào)配 – 開(kāi)發(fā)人員能夠根據(jù)需要快速地創(chuàng)建 K8s 集群。
- 高可用 HA – PKS 中的 BOSH 會(huì)監(jiān)控 K8s 集群的運(yùn)行狀況,保證架構(gòu)到應(yīng)用整體的高可用性。
- 訪問(wèn) Google Cloud Platform (GCP) Services – 開(kāi)發(fā)人員能夠通過(guò)內(nèi)置的 GCP Service Broker 方便地訪問(wèn) GCP 服務(wù)。
- 持久性存儲(chǔ) – 支持在 K8s 集群中部署無(wú)狀態(tài) (stateless) 的或有狀態(tài) (stateful) 的應(yīng)用。

PKS 的管理平臺(tái)
PKS 的控制管理平臺(tái)是基于 Pivotal 和 Google 聯(lián)合開(kāi)發(fā)的項(xiàng)目 Kubernetes on BOSH (簡(jiǎn)稱 Kubo),Kubo 以 BOSH 為基礎(chǔ)增強(qiáng)了對(duì)于 K8s 平臺(tái)的部署和管理功能。BOSH 是 VMware 開(kāi)發(fā)的分布式服務(wù)部署管理平臺(tái),最初用于 Cloud Foundry 平臺(tái)的部署,也可以用于在 vSphere、AWS 或 OpenStack 等 IaaS 產(chǎn)品上部署分布式服務(wù)。Kubo 不僅用于 K8s 平臺(tái)的初始部署,實(shí)現(xiàn) K8s 集群和網(wǎng)絡(luò)環(huán)境的自動(dòng)配置;也用于 K8s 平臺(tái)的后續(xù)維護(hù)監(jiān)控,可以提供諸如健康檢查、自我修復(fù)等功能來(lái)實(shí)現(xiàn) HA 等生產(chǎn)級(jí)的能力。2017 年底,Kubo 被捐獻(xiàn)給了 Cloud Foundry 基金會(huì),改名為 Cloud Foundry Container Runtime (CFCR)。
PKS 非常注重跟 K8s 發(fā)行版本的兼容性,這樣每當(dāng) K8s 發(fā)布新的版本,PKS 可以在一周內(nèi)就引入這個(gè)新版本,從而使 PKS 始終保持跟 Google Kubernetes Engine (GKE) 的高度兼容。這種兼容性保證了開(kāi)發(fā)人員在 PKS 上開(kāi)發(fā)的代碼可以在所有基于 K8s 的容器平臺(tái)上運(yùn)行,并且可以隨時(shí)用到最新版本的功能。
內(nèi)置 NSX-T 提供虛擬網(wǎng)絡(luò)功能
PKS 中內(nèi)置了新一代網(wǎng)絡(luò)虛擬化產(chǎn)品 NSX-T ,為容器提供微分段、負(fù)載均衡、安全策略等高級(jí)網(wǎng)絡(luò)功能。NSX-T 是 NSX 的新一代產(chǎn)品,產(chǎn)品代號(hào)變形金剛 Transformer,所以在產(chǎn)品名字中放了一個(gè) T,以示與前一代產(chǎn)品 NSX 的區(qū)別。NSX-T 為容器和 Pod 提供了從層2到層7的完整網(wǎng)絡(luò)服務(wù),在基礎(chǔ)的 K8s 網(wǎng)絡(luò)功能上提供額外的高級(jí)網(wǎng)絡(luò)功能,如網(wǎng)絡(luò)微分段、隨需網(wǎng)絡(luò)調(diào)配、負(fù)載均衡、網(wǎng)絡(luò)安全、多租戶隔離等,從而為容器應(yīng)用的部署和開(kāi)發(fā)提供最大的便利。
容器映像倉(cāng)庫(kù) — HARBOR
Harbor 是由 VMware 開(kāi)發(fā)的一個(gè)開(kāi)源的企業(yè)級(jí)容器映像倉(cāng)庫(kù),用于存儲(chǔ)和發(fā)布容器映像,它提供了生產(chǎn)級(jí)的身份認(rèn)證和基于角色的訪問(wèn)控制來(lái)保證容器映像的安全訪問(wèn),同時(shí)也能夠?qū)θ萜饔诚襁M(jìn)行安全漏洞掃描,提供可信映像服務(wù)和映像復(fù)制服務(wù)。Harber 讓容器映像能夠被安全地下載到 K8s 集群中來(lái)運(yùn)行,為持續(xù)集成和持續(xù)交付開(kāi)發(fā)提供生產(chǎn)級(jí)的映像存儲(chǔ)。開(kāi)發(fā)人員完成開(kāi)發(fā)后能夠把完成的容器映像推送到映像倉(cāng)庫(kù)中,從而實(shí)現(xiàn)自動(dòng)化的軟件發(fā)布。被推送上來(lái)的容器映像會(huì)進(jìn)安全漏洞掃描和驗(yàn)證數(shù)字簽名,只有被通過(guò)檢查后才能被部署到 K8s 集群中去運(yùn)行。這種方式既滿足了開(kāi)發(fā)人員快速交付應(yīng)用的需求,同時(shí)也給 IT 團(tuán)隊(duì)更多的控制手段來(lái)滿足企業(yè)對(duì)于信息安全方面的規(guī)定。當(dāng)然,雖然我們推薦 Harbor ,PKS 也可以使用其他的容器映像倉(cāng)庫(kù)。
GCP SERVICE BROKER
PKS 內(nèi)置了 Google 云服務(wù) GCP (Google Cloud Platform) 的服務(wù)代理 GCP Service Broker,它的作用是讓開(kāi)發(fā)人員能夠直接調(diào)配和使用 GCP 服務(wù),訪問(wèn) GCP 服務(wù)的用戶認(rèn)證等參數(shù)則由管理員統(tǒng)一設(shè)定,開(kāi)發(fā)人員只需要使用 kubectl 命令 (或調(diào)用 API) 來(lái)創(chuàng)建和管理 GCP 服務(wù)實(shí)例就行了。GCP Service Broker 支持各種 GCP 訂閱服務(wù),如:Google Cloud Storage、Google BigQuery、Google Stackdriver 等等,這些服務(wù)可以直接被 PKS 集群內(nèi)的容器應(yīng)用所訪問(wèn)。
持久性存儲(chǔ)
PKS 集成了持久性存儲(chǔ)的方案 Project Hatchway,通過(guò)VMware vSphere Storage for Kubernetes 插件來(lái)為容器提供基于 vSphere 存儲(chǔ)的 K8s 存儲(chǔ)基元 (storage primitive),包括 volumes、persistent volumes、persistent volumes claims、storage classes 和 stateful sets。同時(shí)該插件也為 K8s 集群帶來(lái)了很多企業(yè)級(jí)的存儲(chǔ)特性,例如能夠使用 vSAN 上基于策略的存儲(chǔ)管理機(jī)制 SPBM (Sotrage Policy Based Management)。PKS 的持久性存儲(chǔ)方案使得 K8s 集群不僅能夠支持無(wú)狀態(tài) (stateless) 應(yīng)用,也能夠支持有狀態(tài) (stateful) 應(yīng)用。

VMware PKS (圖中紅框內(nèi)部分) 和其他 VMware 組件的關(guān)系
除了自身的優(yōu)勢(shì)之外,PKS 依托 VMware 云計(jì)算基礎(chǔ)架構(gòu),能夠?yàn)槿萜鲬?yīng)用提供更為安全、可靠的運(yùn)行環(huán)境。如上圖所示,PKS 是紅框中的那一部分,它可以運(yùn)行在 vSphere 和 vSAN 平臺(tái)上,充分利用 vSphere 提供的高可靠虛擬化運(yùn)行環(huán)境和 vSAN 提供的高性能存儲(chǔ);同時(shí),VMware 的云管平臺(tái) vRealize 提供了完整的運(yùn)維、自動(dòng)化、成本分析等云計(jì)算平臺(tái)管理功能,讓 PKS 集群的管理更加高效、簡(jiǎn)便。