GKE是GOOGLE在GCP上面的k8s cluster服務,對於GCP使用者來說,GKE可以提供輕鬆自動部署、管理 Kubernetes 及調度所需資源,一切的事情都可以在Google Cloud Platform上面操作。
以下是GOOGLE自己說的特點
- 在 K8s 最大工程貢獻者所打造的平台中執行 Kubernetes
- 按一下即可建立叢集及向上擴充至最多 15,000 個節點,讓您快速開始使用
- 利用包含多可用區和區域叢集的高可用性控制層
- 採用業界首創的四向自動調整資源配置功能,消弭固定性的作業負擔
- 設計之初便將安全性納入考量,提供容器映像檔的安全漏洞掃描和資料加密等功能
四向自動調整資源配置功能
這邊是指它能橫向(加pod/node),垂直(動態調整pod資源)
目前GKE有二種模式
- 依據工作負載需求取得可用於實際工作環境的叢集
- 減輕節點管理的負擔
- 僅須為實際使用的資源付費,以 Pod 數量計價
- 內建 Google 最佳做法,進一步提升安全性
- 提高工作負載可用性
以下資料擷取自 所有功能與特色,這邊會加入目前使用的心得或是狀態
身分與存取權管理
: 利用 Google 帳戶和角色權限,控管叢集存取權,這邊指的是使用IAP(利用身分識別和背景資訊把關,控管使用者對應用程式和 VM 的存取權)來進行權限設定,IAP在GCP上面是很重要的一個角色。混合式網路
: 替叢集保留 IP 位址範圍,讓叢集 IP 能夠透過 Google Cloud VPN 與私人網路 IP 共存。安全性與法規遵循
: GKE 由超過 750 位專家組成的 Google 安全性團隊負責守護,並且符合《健康保險流通與責任法案》與 PCI DSS 的規範。整合式記錄與監控功能
: 只要勾選幾個核取方塊進行設定,就能啟用 Cloud Logging 和 Cloud Monitoring,輕鬆掌握應用程式的詳細運作狀況,Cloud Logging需要使用GCP的Stackdriver,但是Stackdriver有點難用...建議自架elk收log還比較實際一點QQ,Cloud Monitoring default可以開啟啦,可以看到cluster/node/pod資源。叢集選項
: 根據工作負載的可用性、版本穩定性、隔離性和 Pod 流量需求,選擇適合的叢集,這邊應該是指standard/autopilot,自己使用上還是以standard為主啦,畢竟pod自己會scaling,要看看pod本身的服務適不適合這樣子做。自動調度資源
: 根據資源利用率 (CPU 和記憶體) 自動調度應用程式部署項目的資源,這邊是指node autoscaling,還是一樣,看自身服務性質,如果有狀態的服務就不建議開啟啦..因為你不知道他在縮node時會不會砍到你有狀態的pod,除非有設定親和力。自動升級
: 自動升級至最新 Kubernetes 發布版本,讓叢集保持在最新狀態。如有可用的 Kubernetes 更新版本,馬上就能在 GKE 中取得,這個有點踩到雷,因為它是自動更新,所以你不知道何時突然被更新,這不能關QQ,只能設定一個很長期的禁止更新時間,但是google底層的升級是關不掉的。自動修復
: 自動修復功能啟用後,GKE 會對未通過健康狀態檢查的節點進行修復,因為這個沒遇過,所以不知道發生會怎麼做修復。資源限制
: 透過 Kubernetes,您可以指定每個容器所需的 CPU 與記憶體 (RAM) 容量,更妥善地管理叢集內的工作負載,這邊是直接透過yaml檔的resource處理掉。容器隔離
: 使用 GKE Sandbox 在 GKE 中的容器化工作負載之間提供第二層防護機制,藉此提高工作負載的安全性,這個沒用過QQ。支援有狀態應用程式
: GKE 不只適用於 12 因子應用程式,您可以為容器附加永久儲存空間,甚至是託管完整的資料庫,應該是指可以掛PVC,把volumn指向PVC上,就可以把pod資料存在永久儲存空間上面。支援 Docker 映像檔
: GKE 支援常見的 Docker 容器格。全代管
: Google SRE 提供 GKE 叢集全代管服務,確保您的叢集隨時可用,而且保持在最新狀態。針對容器打造的作業系統
: GKE 採用 Container-Optimized OS,這是由 Google 打造及管理的作業系統,具備經過強化的安全防護能力,GKE舊版號還可以選docker runtime的os,但是目前版號的gke已經不支援docker runtime的os了,一律採用 Container-Optimized OS,但是基本上不影響在上面運作的container。私人 Container Registry
: 與 Google Container Registry 相互整合,讓您輕鬆儲存及存取私人 Docker 映像檔,就私人image repo XD。快速一致的建構作業
: 透過 Cloud Build 穩定地在 GKE 中部署容器,而且不必設定驗證程序。跨地端與雲端的工作負載遷移能力
: GKE 執行的是經過認證的 Kubernetes,因此可以將工作負載遷移至其他雲端和地端部署的 Kubernetes 平台。支援 GPU 和 TPU
: GKE 支援 GPU 和 TPU,方便您執行機器學習、GPGPU、HPC 和其他受惠於特殊硬體加速器的工作負載,在建立node時可以選擇是否要使用TPU。內建資訊主頁
: Cloud Console 提供專案叢集及其資源專屬的實用資訊主頁,您可以透過資訊主頁查看、檢查、管理及刪除叢集中的資源。先占 VM
: 經濟實惠的短期執行個體,適合用於執行批次工作和容錯工作負載。先占 VM 最多可讓您省下高達 80% 的費用,同時仍享有一般 VM 的效能和功能,先占節點是效期最多可達 24 小時的 Compute Engine 執行個體,這項設定一經確認即無法變更,簡單來說,就是如果node選擇先占節點
,如果24小時沒有人使用,GKE就把這個node回收掉=刪掉。支援永久磁碟
: 耐用的高效能區塊儲存空間,適用於容器執行個體。系統會採取備份儲存機制,以利確保資料完整及進行自動加密處理,並讓您靈活調整儲存空間大小,而不會造成作業中斷。建立永久磁碟時,您可以選用 HDD 或 SSD 格式。您也可以替永久磁碟建立快照,並利用該快照建立新的永久磁碟。支援本機 SSD
: GKE 提供的本機固態硬碟 (SSD) 區塊儲存空間一律經過加密處理。本機 SSD 是實體儲存空間,會實際連接託管虛擬機器執行個體的伺服器。相較於永久磁碟,本機 SSD 可達到極高的每秒輸入/輸出作業數 (IOPS),而且延遲時間極短。全球負載平衡
: 全球負載平衡技術可協助您將傳入要求分配至多個區域的執行個體集區,只要支付少許費用,就能享受極致效能、超高總處理量和絕佳可用性。支援 Linux 和 Windows
: GKE 可以全面支援 Linux 和 Windows 的工作負載,並執行 Windows Server 和 Linux 節點,這邊是指node的os版本,目前windows os的node限制比較多,而且還有限制機器類型。支援混合雲和多雲端
: 在您的資料中心內充分發揮 Kubernetes 和雲端技術的優勢。您可以透過便捷的代管式安裝程序,體驗 GKE 的強大功能,並透過 Anthos GKE 享有經 Google 驗證的升級服務。無伺服器容器
: 執行無狀態的無伺服器容器,藉此免除所有基礎架構管理作業,並透過 Cloud Run 自動調整資源配置。用量計算
: 精確掌控您的 Kubernetes 叢集狀況。查看依命名空間和標籤細分的 GKE 叢集資源用量資料,並判斷用量來自哪個有意義的實體。發布版本
: 發布版本可讓您根據叢集及叢集工作負載的穩定性需求,進一步控管特定叢集接收到的自動更新。您可以選擇快速版、一般版或穩定版。每種發布版本都有不同的發布速度,並且會以不同類型的工作負載為目標,基本上就分成二種,靜態跟發佈二種,靜態版本是不會自動更新版本
,發佈版本會自動更新版本
,如果你的需求上是不需要自動更新k8s版本,就選擇靜態版本
。軟體供應鏈安全性
: 透過容器分析功能,對容器映像檔所用的基礎架構元件和套件驗證安全性,並且強制實行及改善防護措施。以秒計費
: Google 採用「以秒計費」的累計制收費模式,您僅須為實際使用的運算時間付費。以上為GKE的基礎介紹,下一篇就來動手建k8s