雲原生開發技術已是 IT 趨勢,由 Google 創造且開源的 Google Kubernetes Engine(GKE),可以說是新一代軟體的核心。本文將帶您來看,Google 今年度 KubeCon 大會(2021)上推出了哪些 Kubernetes 新功能與技術應用,並統整 IT 人員應使用 GKE 作為 Kubernetes 託管服務的原因。
1. GKE 支援立即可用的 k8s,有效降低營運成本
Kubernetes 管理服務 Google Kubernetes Engine(GKE)讓你可輕鬆運作你的容器化應用程式,同時也給你所需要的控制權。近期,GKE 推出新的 GKE 維運模式 Autopilot,透過 Autopilot,IT 人員可以體驗到 Kubernetes 自動化,不僅能自動優化叢集、降低管理叢集的營運成本,還能提高工作負載的可用性(Availability)。
Google Cloud 客戶 STRABAG 便指出, GKE Autopilot 能減少 Kubernetes 複雜性,同時極大化 Kubernetes 的技術力,完全符合他們的需求。
隨著用戶擴大正式環境,對於應用程式的可用性、減少故障隔離,或是提供不同種類的服務能力等需求日益增加,也增強進行多叢集間部署的 IT 需求及必要性。透過 Google Cloud 近期推出的 GKE 多叢集服務(GKE multi-cluster services),Kubernetes 服務物件就能在同個區域(zone)內、不同區域及不同地區(regions)間橫跨多個叢集執行,以最簡易的配置或最低作業成本來管理叢集間的互連。GKE 多叢集服務讓 IT 人員得以專注在自身應用程式的需求,而 GKE 則能協助其有效管理多叢集拓樸(topology)。
以電商平台為主要業務的日本網路公司 Mercari 表示:「我們已經在單一多租戶 GKE 叢集(single multi-tenant GKE cluster)中運行所有的微服務,目前我們也針對我們下個世代的 Kubernetes 基礎架構,設計多區域的同質及異質叢集。叢集間做到無縫通訊可以說是先決條件,也是多叢集服務承諾支援的。開發人員將不再需要考慮服務會在哪些地區運行。我們對於這個展望相當期待。」
2. 簡單為 GKE 建立並拓展 CI/CD 管道
拓展持續整合及持續交付(CI/CD)管道可能是相當耗時的過程,涉及數個手動的步驟:設定 CI/CD 伺服器、確保配置檔案處於最新版本,以及將有正確憑證的映像檔部署至 Kubernetes 叢集。Google 無伺服器 CI/CD 平台 Cloud Build 支援許多不同的功能,讓 IT 人員盡可能簡化上述的過程。
對於初學者來說,Cloud Build 原生支援 buildpacks ,使得 IT 人員無需透過 Dockerfile 就能建立容器。在建立過程中,你可以直接使用你自己的容器映像檔,或選擇預先建立的映像檔以節省時間。此外,因為 Cloud Build 是無伺服器服務, 能擴充及縮減資源,因此使用者不需預先佈建伺服器或預先支付容量費用;另外透過內建的漏洞掃描功能,您可以在 CI/CD 管道中執行深度安全掃描,確保只有受信任的軟體(artifacts)才可以在正式環境運行。
最後,透過 Cloud Build,你只需要幾下點擊便能替 GKE 建立持續交付管道。而這些管道實現了 Google 當初開發來處理 Kubernetes 部署的開箱即用功能,能進一步減少設定及管理管道的費用。Gordon Food Service 客戶銷售部門 IT 總監 Craig Van Arendonk 表示,在使用 Google Cloud 之前,他們要在 24 小時內正式上線用戶要求的功能簡直是天方夜譚,但是搬遷至 GCP 後,他們隨時都做得到。
3. 輕鬆管理 k8s 安全性及合規性
您從 GitHub repository 取得的 Kubernetes 開源版本,並不是一個開箱即用的封閉環境。它是被設計成具有高度的可擴充性,來解決彈性及可用性,而不是為安全性所設計解決方案。
因此,Kubernetes 安全性便需要依靠擴充點來與其他系統整合,像是身分及授權系統等,這意味著 Kubernetes 可以適用於許多的使用情境,然而這不代表 Kubernetes 的上游初始設定對你來說是合適的。
如果你希望抱持著「初始設定即安全」的心態來部署 Kubernetes ,便需要了解幾個核心要素。如同 Google 在容器安全白皮書中所討論的,以下有幾個 GKE 網絡相關的功能,可以讓你的 Kubernetes 更安全:
- 安全的 Pod 網絡
透過 Dataplane V2(已 GA ),GKE 在你建立叢集時允許 Kubernetes 網絡政策。此外,Network Policy logging(GA中)則提供您叢集網絡的能見度(visibility),讓你可以知道誰跟誰正在溝通。
- 安全的服務網絡
GKE 閘道控制器(Gateway controller)透過標準化與宣告性的 Kubernetes 介面,在不犧牲彈性與開發人員自主權的情形下,提供集中化的控制與安全性。
Google Cloud Fintech 客戶 Credit Karma 指出,在 k8s 執行網絡政策可以是個艱難的任務,充滿猜測與試錯,因為需要試著了解應用程式在網路上的表現。此外,許多合規性的監管框架都會要求以控制設定和違規記錄的形式來證明能夠對外及對內防禦。而透過 GKE Network Policy logging,能快速隔離並解決問題,並且在審查時提供要求的證據。這點將可以大幅簡化執行網絡政策的過程。
4. GKE Dashboard 整合式記錄與監控功能
要有效進行故障排除並優化產品,應用程式及基礎架構的可視性是關鍵。GKE 在你部署你的應用程式時,會自動進行監控。GKE 叢集事先安裝了 Agent,可以收集遙測數據並自動將其傳送至 Cloud Logging、Cloud Monitoring 等監控服務。這些服務與 GKE 互相整合,讓你擁有更好的洞察力,更快速採取行動。
舉例來說,GKE 儀錶板提供包括叢集、命名空間、節點、工作負載、服務、pods 與容器等指標摘要,且支援上述 Kubernetes 事件與項目警示的整體視圖。你可以透過警示或是儀表板直接進入特定的日誌(log),不需要透過多個供應商之下不相連的工具來瀏覽資源,而是能直接導到資源本身。
同樣地,因為遙測資料會自動導入 GCP 的監控服務系統,技術人員便能有效運用 Google 工具,例如,SLO Monitoring 借助 Google SRE 原則,協助 IT 人員建立誤差容忍範圍(error budgets),並根據這些目標監控服務,在開發團隊與營運團隊間推動更好的責任歸屬制度。此外,Google Cloud 持續投資與 OpenTelemetry 的整合,可提升平台及應用程式的遙測資料收集能力。
Gannett Media Corp 平台工程部門總監 Erik Rogneby 指出,「 『透過 GKE』,無需進行任何設定或整合工作,即可發現錯誤....與雲原生的直接整合,讓我們能在最短時間內獲得所需的資訊。」
5. 透過 Anthos,在任何地點管理及執行 Kubernetes
藉由 Anthos 平台,你可以在內部資料中心或其他雲端平台中使用 GKE,充分發揮 Kubernetes 和雲端技術的優勢,也能將 GKE 及其他主要架構(framework)及服務遷移至任何基礎架構中,並統一由 Google Cloud 進行管理。
對 IT 人員來說,要在多個雲端平台間建立一個安全環境是一大挑戰。因為每個平台都有不同的安全相容性、身分驗證系統及風險,要支援額外的雲端平台往往需要在資安方面付出更多心力。對此,Anthos 可以解決上述許多的困難。Anthos 支援開箱即用的功能,使得企業不需再仰賴雲端、應用程式團隊來打造可以跨平台間運作的工具,而是可以直接透過 Anthos 平台,在 GCP、AWS 以及即將到來的 Azure 等平台上,部署並執行基礎架構及服務。
近期,Google Cloud 發布了 Anthos1.7 版本,增強一系列功能,使得多雲應用更輕鬆、永續。波蘭銀行 PKO Bank Polski 表示,「透過使用 Anthos,我們能夠加快開發速度,並更快地提供新的服務。」
6. GKE 支援強大 GPUs 處理,簡化大規模機器學習
GKE 強化靈活性及 Autoscaling 等功能,並簡化容器管理複雜度,而 GPU 則帶來了卓越的處理能力。目前 GKE 已經能支援 multi-instance NVIDIA GPUs,你可以將一個 NVIDIA A100 GPU 的處理能力分給最多七個 instances,而每個 instance 都擁有獨自的高頻寬記憶體、緩存(cache)及運算核心。每個 instance 可以分配給一個容器,而每個 NVIDIA A100 GPU 最高可支援七個容器。此外, multi-instance GPUs 可以支援容器間的硬體區隔,並為在 GPU 上執行的所有容器提供一致且可預測的服務品質。
Google Cloud 客戶 Betterview 表示,透過減少「將 GPU 連接至資源」所需的設定環節,Google Cloud 和 NVIDIA 減少了大規模部署機器學習的障礙,讓他們能以最適合的方式部署 AI。
文章編譯自:Google Cloud: 6 more reasons why GKE is the best Kubernetes service