iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
1
DevOps

現代化小白也要嘗試的容器手札系列 第 27

Day 27. Google GKE 叢集參數深入實踐

鬆獅容器小白27連拍

https://ithelp.ithome.com.tw/upload/images/20201005/20025481jbzT8JAk9g.jpg

GKE叢集重要參數設置

上篇在GKE採用簡單的佈署示範讓我們對服務上手性更為容易,但實際上有更多很值得拿來進階應用生產環境使用的功能來做說明,我也把原來已經簡易佈署的K8s Cluster移除,本篇就來針對一些有意義的功能來圖文探索。

叢集基本資訊

  • 位置地區性可以作為多可用區域的實體層級服務保護,建議生產環境一定要選擇此。
  • 版本上篇是選擇一個穩定版本類型由系統指派,但如果自身開發上有特別版本環境的需求,其實也有下拉選單指定的版本可以選擇。

https://ithelp.ithome.com.tw/upload/images/20201003/20025481MXEmEnOOT5.png

節點集區

  • 節點版本通常會與叢集一致性,自行選擇適合自身的部署環境為主。
  • 節點數量預設是會在底層跑3台GCE伺服器,測試環境可以選擇更低的數量節省成本,當然生產環境可能會更多,自行判斷。
  • 生產環境建議啟用自動擴展,且Pod所支撐的Node上下限可以依據預估的負載量判定設置。
  • 部署的節點位置也會呼應是否有設置可用性區域來做執行的地區選擇。
  • 如果底層更新升級後所指定的Node數量允許的上限值及如果異常Node可接受數量

https://ithelp.ithome.com.tw/upload/images/20201003/20025481yk9DykC8Z6.png

節點數

  • 預設是Google提供一個系統認為優化過的容器作業系統,而如果自己也可以選擇所熟悉的OS,如:Ubuntu等...

https://ithelp.ithome.com.tw/upload/images/20201003/20025481WyZ0XTy5oH.png

  • 伺服器等級的選用也是可以自訂的,包含以下幾種類型:
  1. 一般用途
  2. 運算(CPU)最佳化
  3. 記憶體(Memory)最佳化
  4. 涵蓋上述的自訂規格(不過CPU Core要>=2,RAM最小可以1G)已滿足客製化的生產環境或是測試節省成本之用。

https://ithelp.ithome.com.tw/upload/images/20201003/2002548129yqZvZnSy.png

  • 開機的磁碟可以是標準的HDD或是較高IOPS的SSD磁碟

https://ithelp.ithome.com.tw/upload/images/20201003/200254810Yqa20YMpR.png

  • 預設是100GB空間大小,可以自訂,不過一旦決定就無法在縮小空間。
  • 安全性選項,是否需要開機時的管理加密。
  • 先佔節點可在24hr區間內先行佔用Node資源但租用成本較低,一但設置就無法再調整,預設是沒有啟用。

https://ithelp.ithome.com.tw/upload/images/20201003/20025481ffeWyfaYKE.png

  • 一個節點最多可以執行110個Pod,也可以根據負載等應用考量指定Pod最多的上限值。
  • 網路標記就跟原GCE上綁定的防火牆規則做法相同,如果沒有設置是無法直接對外提供服務的。

https://ithelp.ithome.com.tw/upload/images/20201003/20025481CoRinyI1rF.png

安全性

  • 預設都是用系統的預設服務帳戶來做存取,如果有想要帳戶存取的安全性切分,則可以透過自訂的服務帳戶來作調整。
  • 防護的部分會啟用系統的完整監視。
  • 安全啟動可以視需求讓容器環境更為安全。
  • gVisor本身是Google開發的容器沙盒,在Linux內核上運行涵蓋安全,效率和易用性,並與Docker容器隔離技術相比,gVisor在用戶空間初估可以有200+的Linux系統調用,重要應用如:不受信任第三方工作負載叢集就可以透過此來做安全隔離防護。

https://ithelp.ithome.com.tw/upload/images/20201003/20025481zTEmJ00BRP.png

中繼資料

  • 可以作為讓Node節點套用指定的標籤,進而能更智慧化的套用規則,搜尋等關聯性。 >> 科普中繼資料

https://ithelp.ithome.com.tw/upload/images/20201003/20025481oCM8J2BPil.png

叢集進階

自動化

  • 自己決定可以被底層系統維護的時間區間包含如下:
  1. 開始與結束時間
  2. 時間長度最少>=4hr
  3. 一週星期各天的選擇
  4. 排除不可以維護的時間
  • 是否啟用節點自動擴展以及上下限預設CPU與Memory資源,當然還有其他的選擇可以自行新增條件。

https://ithelp.ithome.com.tw/upload/images/20201003/20025481yuNQWHcnYH.png

網路連線

  • 叢集可以是公開或是私人內部使用。
  • 網路都可以依據原來所設置的VPC範圍所給定CIDR
  • Pod上限自訂,一樣最多不能超過110個。
  • 一旦啟用網路政策後,GKE會在該叢集中強制執行政策,原則設置可以參考此 >>NetworkPolicy
  • 指定系统是否允许Pod發送和接收的網路流量日誌紀錄收集,此功能需依靠網路原則相輔相成。
  • 是否需要GKE集群中IP偽裝功能,讓叢集外部目標只會接收来自節點的IP而非Pod的封包。
  • 是否需要NodeLocal DNSCache來減少發送到kube-dns的DNS查询頻率次數,進而降低DNS查找延遲時間,讓服務更有效率。

https://ithelp.ithome.com.tw/upload/images/20201003/20025481wGMOox3zmH.png

安全性

安全功能概觀:

  1. 身份驗證與授權,包含Google帳戶與服務帳戶更自授權後再對應RBAC存取控制。
  2. 節點升級,固定修補作業系統讓節點地其升級更新,減少漏洞情事發生。
  3. 容器作業系統優化,包含綁定防火牆,Read-Only以及受限的帳戶與停用Root。
  4. 保持元資料的隱藏。
  5. 限制Pod到Pod之間的通訊。
  6. 過濾負載平衡流量。
  7. 高可用保護工作負載如:自擴,快速預配資源以及保留容器資源等..
  8. 限制Pod存取Google Cloud資源的權限。
  9. 服务帳戶JSON密鑰。
  10. 日誌紀錄稽核。

功能

  • 是否要啟用適用於AI運算的Tensor Processing Unit(TPU)
  • 是否要啟用GKE的使用量成本計量來檢視是否有浪費資源的情況。可以參考此篇 >> GKE使用計量服務
  • 如需開發人員敏捷開發到生產環境的應用程式交付流程則啟用Application Manager,尚在Beta階段
  • 是否整合lstio微服務管理工具來更無縫接軌各微服務間的任務。

https://ithelp.ithome.com.tw/upload/images/20201003/20025481Gc4d2GvQEc.png

GKE叢集佈署完成

  • 以下就如同前篇,部署完成後節點集區的狀態清單視角。
    https://ithelp.ithome.com.tw/upload/images/20201003/20025481IJMYnnKC8V.png
    https://ithelp.ithome.com.tw/upload/images/20201003/20025481buDhRkSycB.png

  • 各節點的資源分配使用與健康狀態。
    https://ithelp.ithome.com.tw/upload/images/20201003/20025481OJ3chbYqTo.png

  • 單一節點的資訊狀態情況。
    https://ithelp.ithome.com.tw/upload/images/20201003/20025481M6OjcEx6nJ.png


上一篇
Day 26. Google K8s 小白初始安裝實踐
下一篇
Day 28. Google GKE 部署自己第一個容器實驗
系列文
現代化小白也要嘗試的容器手札30

尚未有邦友留言

立即登入留言