2020-02 淺談 Kubernetes K8S 技術和發展

系出名門

Kubernetes(又名 K8S)始源於 Google 內部的 Borg 項目,後來被Google工程師用 Go 語言重寫,冠以 Kubernetes 這名字,在希臘語的意思是掌舵手,寓意管理數以萬計的容器集群。當時這項目在Google內部得到充分得認同後,Google將這技術於2014年6月開源,這是想藉著開源社區的力量將其發揚光大,結果一如所願,受到了各大IT科技巨頭的追捧,並且紛紛加入貢獻者行列,將其力量再度提升,加快了項目發展,自此 Kubernetes 快速崛起,如今已成為容器技術的新貴。

設計理念

現時,主要的容器技術還有 Docker Swarm 和 Apache Mesos,相較之下,Kubernetes 的設計理念跟它們有很不同的地方,Kubernetes 用上了 Pod 概念,將容器分組管理,並引入 Sidecar 設計模式,這有利於微服務架構的設計,降低了與微服務架構的複雜性,並提供了許多重要功能,包括負載平衡、流量管理、熔斷機制、服務發現和故障管理等,有助實現高度擴展性、觀察性和安全性的微服務架構。

Kubernetes另一特點是以應用程式為核心的設計理念,提供可靠的 API 模式,有利於程式設計師更好地將容器技術結合在軟件工程當中,達至負載平衡以及大規模容器管理和運行應用程序所需的功能結合在一起的好處,並實現跨雲 Multi-Clouds 平台的真正移植性。現多間大雲端平台商都推出各自的 Kubernetes 管理服務,但這些服務的資源調配,仍需要一種共通的標準,才可做到跨雲容器植性的效果。故此,Kubernetes 推出一項 Federation 功能,讓應用程式可以較輕易地調配到不同的雲端平台,達至跨公用雲平台管理,以及跨公用雲和私用雲的混合雲 Hybrid Cloud 架構,這正乎合很多企業所需的科技部署。

合眾之力

基於 Kubernetes 推行開放式架構,吸引了容器技術界的共同合作,營造出大量基於 Kubernetes API 接口,加強了和其他技術的整合,例如 Istio,這正是 Google、IBM 和 Lyft 合力打造出來的一套開源微服務管理平台,正是用上所謂服務網格Service Mesh的架構,主要用來管理龐大的微服務群。

筆者所見,Kubernetes 將成為重點技術之一,其可更大發揮雲服務所長。這篇文章先為 Kubernetes 作概括,跟著會更深入分析其中的技術和行業趨勢。歡迎各方友好賜教,其同進步,可電郵至architectyeung@gmail.com。