Kubernetes在夯什麼—K8s與DevOps

Kubernetes在夯什麼—K8s與DevOps

回顧:
Part 1 – 容器服務的世代
Part2-Kubernetes在夯什麼—K8S基礎介紹

Part3 – K8s與DevOps

上回我們列出了十項Kubernetes的操作功能特性,其中包含自動化服務、容器部署模式,以及自動負載平衡等等,光是這個清單本身就應該很吸引維運管理人員了吧!

  • 多租戶管理介面(Multi-tenancy)
  • 平台擴充性(Cluster Scalability)
  • 高可用性管理介面(Master HA)
  • 自定義叢集資源(Custom Resource Definitions)
  • 滾動式升級(Rolling Update)
  • 應用服務擴展性(Service Scalability)
  • 自動化負載平衡(Service Discovery and Load Balancing)
  • 自動重啟失能服務(Self-healing)
  • 容器網路管理(Network Policy)

要管理維運一座雲平台其實一點也不簡單,除了技術含量需要有一定的高度外,經常還需要處理雲服務面對的各種狀況。多數的服務都要求高可用性,而有些服務甚至需要能夠橫向擴充。在遊戲產業有一個經典的例子:

許多主流的手機遊戲,經常舉辦線上活動。無論是版本更新、免費贈予玩家虛擬寶物或商城限時優惠,都不難想像在活動上線時,將暴增同時登入的玩家數量。換言之,平時的雲服務高可用度可能撐不住啦!

傳統的做法通常需要由維運人員即時增加/擴充服務實例(instance),在面對上百萬名玩家登入時,維運人員的工作將變得非常具有挑戰性。而Kubernetes的自動橫向擴充功能(Horizontal Pod Auto-scale;HPA)則大幅度簡化了這項工作。更勝一疇的是,只要能正確設定HPA,Kubernetes還能優化雲服務。隨著活動結束、玩家數量減少之際,即時減少服務實例,回覆平常的高可用度設置,以避免雲平台的資源被佔用。

另外,對開發人員來說,容器快速、容易部署的特性在近年內被發揮得很有心得。作為「微服務架構」的最佳載體,容器的特性與DevOps概念相隨如影。其中CI/CD的實現發展到一個技術高峰,而「極限開發」也漸漸導入Kubernetes,作為開發平台的架構之一。

利用自動化開發工具部署容器是很直覺的做法,但當開發版本增加時,越來越多容器被部署,管理需求便浮上了檯面。以Kubernetes作為持續交付(Continuous Delivery)的目的地,就能夠很完善地管理這些容器了。而Kubernetes的Service及Ingress資源,則提供使用者(開發人員)簡單卻安全的方式存取欲測試的服務,甚至能產生網域名稱來實作,真的非常方便!在與維運人員相互配合之下,絕對能夠利用Kubernetes打造一座最佳化的軟體開發測試環境,甚至順利導入DevOps實現!

閱讀更多:
Part4-Kubernetes在夯什麼—建置一座K8s

撰文: 陳逸凡 迎棧科技解決方案架構師

訂閱電子報

Select list(s)*

 

Loading