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 集群的管理更加高效、簡便。