現代化小白也要嘗試的容器手札 - Google GKE 叢集參數深入實踐
Day 27. Google GKE 叢集參數深入實踐
GKE叢集重要參數設置
上篇在GKE採用簡單的佈署示範讓我們對服務上手性更為容易,但實際上有更多很值得拿來進階應用生產環境使用的功能來做說明,我也把原來已經簡易佈署的K8s Cluster移除,本篇就來針對一些有意義的功能來圖文探索。
叢集基本資訊
- 位置地區性可以作為
多可用區域的實體層級服務保護
,建議生產環境一定要選擇此。 - 版本上篇是選擇一個穩定版本類型由系統指派,但如果自身開發上有特別版本環境的需求,其實也有
下拉選單指定的版本
可以選擇。
節點集區
- 節點版本通常會與叢集一致性,自行選擇適合自身的部署環境為主。
節點數量
預設是會在底層跑3台GCE伺服器,測試環境可以選擇更低的數量節省成本,當然生產環境可能會更多,自行判斷。- 生產環境建議啟用
自動擴展
,且Pod所支撐的Node上下限可以依據預估的負載量判定
設置。 - 部署的節點位置也會呼應
是否有設置可用性區域
來做執行的地區選擇。 - 如果底層更新升級後所指定的
Node數量允許的上限值
及如果異常Node可接受數量
。
節點數
- 預設是Google提供一個系統認為優化過的容器作業系統,而如果自己也可以選擇所熟悉的OS,如:Ubuntu等...
- 伺服器等級的選用也是可以自訂的,包含以下幾種類型:
- 一般用途
- 運算(CPU)最佳化
- 記憶體(Memory)最佳化
- 涵蓋上述的自訂規格(不過CPU Core要>=2,RAM最小可以1G)已滿足客製化的生產環境或是測試節省成本之用。
- 開機的磁碟可以是標準的
HDD
或是較高IOPS的SSD
磁碟
- 預設是100GB空間大小,可以自訂,不過一旦決定就無法在縮小空間。
- 安全性選項,是否需要開機時的管理加密。
- 先佔節點可在24hr區間內先行佔用Node資源但租用成本較低,一但設置就無法再調整,預設是沒有啟用。
- 一個節點
最多可以執行110個Pod
,也可以根據負載等應用考量指定Pod最多的上限
值。 - 網路標記就跟
原GCE上綁定的防火牆規則做法相同
,如果沒有設置是無法直接對外提供服務的。
安全性
- 預設都是用系統的預設服務帳戶來做存取,如果有想要帳戶存取的安全性切分,則可以透過自訂的服務帳戶來作調整。
- 防護的部分會啟用系統的完整監視。
- 安全啟動可以視需求讓容器環境更為安全。
gVisor本身是Google開發的容器沙盒
,在Linux內核上運行涵蓋安全,效率和易用性,並與Docker容器隔離技術相比,gVisor在用戶空間初估可以有200+的Linux系統調用,重要應用如:不受信任第三方工作負載叢集
就可以透過此來做安全隔離防護。
中繼資料
- 可以作為讓Node節點套用指定的標籤,進而能
更智慧化的套用規則,搜尋等關聯性
。 >> 科普中繼資料
叢集進階
自動化
- 自己決定可以被底層系統維護的時間區間包含如下:
- 開始與結束時間
- 時間長度
最少>=4hr
- 一週星期各天的選擇
- 排除不可以維護的時間
- 是否啟用節點自動擴展以及上下限預設CPU與Memory資源,當然還有其他的選擇可以自行新增條件。
網路連線
- 叢集可以是公開或是私人內部使用。
- 網路都可以依據原來所設置的VPC範圍所給定
CIDR
。 - Pod上限自訂,一樣最多不能超過110個。
- 一旦啟用網路政策後,GKE會在該叢集中強制執行政策,原則設置可以參考此 >>NetworkPolicy
- 指定系统是否允许Pod發送和接收的網路流量日誌紀錄收集,此功能需依靠網路原則相輔相成。
- 是否需要GKE集群中IP偽裝功能,讓叢集外部目標只會接收来自節點的IP而非Pod的封包。
- 是否需要
NodeLocal DNSCache來減少發送到kube-dns的DNS查询頻率次數
,進而降低DNS查找延遲時間,讓服務更有效率。
安全性
安全功能概觀:
- 身份驗證與授權,包含Google帳戶與服務帳戶更自授權後再對應RBAC存取控制。
- 節點升級,固定修補作業系統讓節點地其升級更新,減少漏洞情事發生。
- 容器作業系統優化,包含綁定防火牆,Read-Only以及受限的帳戶與停用Root。
- 保持元資料的隱藏。
- 限制Pod到Pod之間的通訊。
- 過濾負載平衡流量。
- 高可用保護工作負載如:自擴,快速預配資源以及保留容器資源等..
- 限制Pod存取Google Cloud資源的權限。
- 服务帳戶JSON密鑰。
- 日誌紀錄稽核。
功能
- 是否要啟用
適用於AI運算
的Tensor Processing Unit(TPU) - 是否要啟用GKE的使用量
成本計量
來檢視是否有浪費資源的情況。可以參考此篇 >> GKE使用計量服務 - 如需開發人員敏捷開發到生產環境的
應用程式交付流程
則啟用Application Manager,尚在Beta階段 - 是否整合
lstio微服務管理
工具來更無縫接軌各微服務間的任務。
GKE叢集佈署完成
以下就如同前篇,部署完成後節點集區的狀態清單視角。
各節點的資源分配使用與健康狀態。
單一節點的資訊狀態情況。
留言
張貼留言