文章來源:K8sMeetup社區算法
Kubernetes 在過去幾年中一直是雲計算領域最著名的開源項目之一。shell
2018 年,Kubernetes 度過了本身的 4 歲生日。從 2014 年開源,到現在成功從 CNCF 孵化,它已成爲容器編排的事實標準。雖然 Kubernetes 還很年輕,但它正如初升的朝陽,在過去幾年中一往直前,爲組織設計和部署應用程序帶來全新定義。本文將回顧 2018 年 Kubernetes 的發展狀況,同時展望它在 2019 年的前行之路。後端
分佈式計算的新時代
當容器於 2008 年首次推出時,虛擬機(VM)仍是雲提供商和內部數據中心尋求優化數據中心資產的最佳選擇。安全
在那時,VM 確實提供了良好的靈活性,但它也存在一些缺陷,如每一個 VM 都須要在整個層(管理程序)中模擬徹底可操做的系統,並大幅佔用物理 CPU 資源。即便採用 Intel VT-x 和 AMD-V 等技術,使用 VM 的性能也遠不如裸機運行。服務器
在這個背景下,容器技術經過在全部鏡像中共享相同的內核來解決這些缺陷。換句話說,來自不一樣鏡像的流程能夠在同一空間中運行,而內核負責保證它們之間的正確隔離,咱們也能夠設置限制鏡像資源利用,對計算資源進行合理調配。佔用內存更少,又不存在硬件仿真層,所以容器一經提出就迅速走紅。網絡
但隨着容器普遍進入生產領域,人們很快也意識到一個事實,就是儘管在同一臺計算機上部署容器很容易,但它在高可用性管理、災難恢復和可伸縮性方面仍存在很多問題,優秀的編排層纔是在生產中大規模部署容器的必要前提。架構
這些問題催生了一種名爲容器編排系統的新型軟件,這種軟件也在過去五年中獲得了普及。它們負責進行集羣操做,協調調度、內存分配、安全性和網絡,目的是確保全部鏡像按規定工做。併發
通過激烈競爭,最後,於 2014 年開源的 Kubernetes 力克 Docker Swarm 和 Apache Mesos,成了容器編排領域當之無愧的勝者。它背靠 Google 多年實踐,實現了對即時部署、彈性伸縮、健康檢查與高可用性(HA)系統的所有覆蓋,能爲生產完整生命週期保駕護航。機器學習
Kubernetes 的 2018
自身不斷髮展
在剛開源的前兩年,Kubernetes 只有五個主要版本。從 2017 年起,它相繼推出 1.六、1.七、1.八、1.9,圍繞穩定性、性能和平臺的 cloud availability 作了改進。而在 2018 年,Kubernetes 更進一步,又進行了 4 次重大更新,在企業最關注的安全性和可擴展性上作了顯著改善:分佈式
2018 年 3 月 27 日,Kubernetes v1.10 發佈。此版本持續加強了 Kubernetes 的成熟性、可擴展性以及可插拔性,並在存儲、安全、網絡加強了其穩定性;
2018 年 6 月 28 日,Kubernetes v1.11 發佈。此版本加強了網絡功能、可擴展性與靈活性。Kubernetes 1.11 功能的更新爲任何基礎架構、雲或內部部署都能嵌入到 Kubernetes 系統中增添了更多可能性;
2018 年 9 月 28 日,Kubernetes v1.12 發佈。此版本新增了兩個備受期待的功能,Kubelet TLS Bootstrap 和對 Azure 虛擬機規模集支持(並已達到 GA 階段)。同時該版本在安全性和 Azure 等關鍵功能上做出了改進;
2018 年 12 月 4 日,Kubernetes v1.13 發佈。此版本是迄今爲止發佈時間最短的版本之一。這一週期的三個主要特性已逐漸過渡到 GA。此版本中的顯着特徵包括:使用 kubeadm 簡化集羣管理、Container Storage Interface(CSI)、以 CoreDNS 做爲默認 DNS。
功能方面,Kubernetes 在 1.10 版本中對接了 kubectl 憑證,今後雲服務供應商、企業能夠發佈二進制插件以處理特定雲供應商 IAM 服務的身價驗證,可擴展性更強。
在 1.13 版本中,CoreDNS 被聲明爲經過全部規模/資源使用測試的默認集羣 DNS。CoreDNS 解決了 kube-dns 存在的安全性和擴展性問題,把 Service 放在一個容器中完成,並用不一樣插件來複制(並加強)kube-dns 功能,爲 Kubernetes 在網絡安全方面的長期發展鋪好了路。
社區日漸繁榮
CNCF 是一個隨容器編排和微服務發展起來的新一代基金會,它的設立初衷是在開源社區基礎上對現代分佈式系統環境進行不斷優化。而在 Google 把 Kubernetes 捐獻給它後,CNCF 就把管理、支持 Kubernetes 推廣發展做爲本身的使命。
2018 年,做爲 Kubernetes 最強大的支持者,CNCF 爲繁榮社區作了許多事,其中又以 3 個孵化項目的成功畢業最爲典型:
2018 年 3 月 7 日,CNCF 宣佈 Kubernetes 正式畢業;
2018 年 8 月 9 日, Prometheus 成爲繼 Kubernetes 以後的第二個畢業項目;
2018 年 11 月 28 日,CNCF 宣佈 Envoy 成功畢業。
而在不久前剛舉辦的雲容器領域最大的峯會之一 KubeCon + CloudNativeCon North America 2018 上,基金會宣佈接受 etcd 分佈式鍵值存儲做爲孵化項目,發揮它在 Kubernetes 集羣管理軟件設計中的重要做用;2019 年 1 月 24 日,CNCF 宣佈 CoreDNS 畢業,爲新一年 Kubernetes 的蓬勃發展打響第一炮。
在 GitHub 上,因爲 Kubernetes 在穩定性和成熟性上已經上升到一個新高度,這一年提交數量有所下降,但 Kubernetes 的代碼行數還在保持持續增加,且已突破 200 萬大關。
儘管谷歌這些年來是 Kubernetes 的主要貢獻者,但如今其餘技術人員在這個項目上的貢獻量已經幾乎和谷歌持平了。此外,包括 IBM、Microsoft 等主要雲提供商在內的 600 餘個組織也爲社區發展提供了的重要支持。在國內,華爲、才雲等組織和機構的貢獻也名列前茅。
在 Kubernetes 代碼庫中導出的 API 端點數量已經穩定在 16,000,這也從側面印證了 Kubernetes 的成熟度和複雜性水平。
企業踊躍支持
Kubernetes 所處的時間點是傳統和現代軟件開發日益高流量的交叉點。根據 CNCF 統計數據,2018 年,雲原生技術增加了 200%,全球有近三分之一的企業正在運營多達 50 個容器,運營 50 至 249 個容器地企業佔比也超過 25%,有超過 80% 的受訪者把 Kubernetes 做爲容器管理的首選。
這些數據都在說明這樣一個事實:誰掌握了 Kubernetes,誰就能進一步擴大在雲計算市場的競爭力,在風雲詭譎的市場上搶佔先機。結合這個背景,2018 年一樣也是谷歌、亞馬遜、微軟等大型雲提供商圍繞 Kubernetes 奮勇爭先的一年:
1 月,紅帽收購 CoreOS,擴大其 Kubernetes 和容器的領導地位;
2 月,Pivotal 與 VMware 聯合開發的企業級容器平臺 Pivotal Container Service 1.0(簡稱 PKS),使運營商可以大規模運營 Kubernetes;
5 月,微軟宣佈擴大與紅帽的合做關係,在 Azure 上提供全託管的 OpenShift,使開發人員可以在 Azure 和本地運行基於容器的應用程序;
6 月,微軟宣佈 Azure Kubernetes 服務(AKS)可用。 經過 AKS,用戶能夠部署和管理他們用於生產的 Kubernetes 應用程序;
6 月,亞馬遜 EKS 可用。 Amazon EKS 簡化了構建、保護、操做和維護 Kubernetes 集羣的過程,對企業充分利用基於容器的雲計算優點進行簡化;
8 月,Google 將 Kubernetes 的雲資源控制權移交給 CNCF 社區,而且承諾會在三年內提供價值約 900 萬美圓的支持;
10 月,IBM 斥資 340 億美圓收購 Red Hat,這是開源領域金額最大的一筆收購,也標誌着 IBM 將更強勢介入雲計算市場,介入 Kubernetes 競爭;
11 月,VMware 用 5.5 億美圓收購 Heptio,借 Kubernetes 增強其在雲原生態系統中的角色。
這些舉動都在代表雲計算市場的戰火將繼續蔓延,Kubernetes 已經成爲兵家必爭之地。而根據招聘網站 Dice 的報告,2018 年,Kubernetes 也是最受互聯網公司青睞的 IT 技能之一,發展前景不可估量。
Kubernetes 和 AI 的結合
這兩年,AI 發展得如火如荼,愈來愈多的企業正在尋求把它用於下降成本和業務創新,同時結合大數據實現企業總體的數字化升級。但再強的算法也需強大的架構和工程做爲支撐。
從開發到測試再到生產,容器爲流程運行提供了緊湊的環境,它們易於擴展,能將大型完整應用程序分解爲有針對性、易於維護的微服務,完美契合 AI 應用開發的各個階段。所以,Kubernetes 和 AI 的結合也被業界視爲大勢所趨。
可是,AI 在產品化過程當中仍會遇到部署複雜、指令繁冗等種種問題。爲了解決這些問題,智能且易於操做的 Kubeflow 應運而生。它可使機器學習的工做負載分佈在多個節點上,極大提升開發人員的工做效率,讓 Kubernetes 上的機器學習、深度學習堆棧變得簡單、快速、可擴展。
2018 年 11 月 8 日,Google Cloud 宣佈推出 Kubeflow Pipelines。它部分基於並利用來自 TensorFlow Extended 的庫,容許開發人員利用該工做並將其投入生產,促進了企業內部協做,並進一步實現了訪問民主化。
近日,英特爾推出 Kubernetes-Native 深度學習平臺 Nauta,這是一個企業級堆棧,適用於須要運行 DL 的工做負載,訓練那些將在生產中部署的模型。用戶能夠在單個或多個工做節點上使用 Kubernetes 定義,安排容器化深度學習實驗,並檢查這些實驗的狀態和結果。
「Kubeflow 在簡易化 Kubernetes 上配置和生產化機器學習工做負載上取得了重大進步,咱們認爲這會極大程度上讓更多企業接受該平臺。」
—— Reza Shafii,CoreOS 產品副總裁
新的一年,Kubernetes 和 AI 在融合之路上還有很長的一段路須要走,而除了簡化整個流程,它們仍將面臨在帶寬上作出更多突破。
Kubernetes 尚有不足
然而,隨着 Kubernetes 被更普遍採用,企業在容器部署中仍面臨挑戰,這涉及從安全性到複雜性再到可擴展性的各個方面。
可擴展性
可擴展性包括兩部分:基礎架構的可擴展性和 API 的可擴展性。
談到它,首先咱們要理解一個概念:微服務。微服務是一項在雲中部署應用和服務的技術,它容許公司將其應用程序分解爲更小的專用代碼包,根據須要進行獨立調整和更新。雖然可用性很強,但與之俱來的是網絡複雜性,企業難以管理用於構建應用程序的微服務之間的流量,也難以提升這些應用程序執行方式的安全性和可視性。
爲了解決這個問題,如今許多供應商開始紛紛採用谷歌、IBM 和 Lyft 開發的開源項目 Istio,以幫助改進雲原生網絡。
複雜性
近日,Nirmata (一家加強企業 DevOps 能力的容器初創公司)的一項研究顯示,雖然 Kubernetes 將來可期,但它的複雜性已經成爲項目繼續發展的一個不可忽視的障礙。根據他們的調查報告,有超過 50% 的開發人員表示曾因 Kubernetes 的複雜操做有過不一樣程度的困擾。
對簡單小型業務來講,Kubernetes 的體量太大了,不如直接用 shell 腳原本得高效直接。所以若是 Kubernetes 想要取得真正的成功,它還要在輕量級和化繁爲簡上作出更多努力。
安全性
一樣的,安全性問題也不容小覷。去年,Kubernetes 出現的嚴重安全漏洞,攻擊者能夠利用該漏洞經過 Kubernetes API 服務器鏈接到後端服務器,利用 API 服務器的 TLS 憑證進行身份驗證併發送任意請求,從企業防火牆內破壞應用和服務。
而一樣是 2018 年,包括特斯拉、Weight Watchers 在內的多家公司也曾遭受 Kubernetes 環境的攻擊,緣由是他們把 Kubernetes 儀表板打開並暴露在互聯網上。這些事故無疑會打擊企業對 Kubernetes 的信心。
Kubernetes 的安全性問題是多維度的。一方面,對於一個運行在 Kubernetes 上的普通應用,真正業務代碼只佔 0.1%,不一樣的組件均可能存在不一樣的安全隱患;另外一方面,企業的普遍使用和網絡安全意識缺失也加重了問題的嚴重性。
可喜的是,隨着問題的暴露,社區中圍繞 Kubernetes 安全的技術項目(如 Notary、TUF 以及谷歌 gVisor)在日益增多,開發者們也正積極地針對漏洞進行補丁和建議。
2019 年預測
隨着愈來愈多的公司將 Kubernetes 視爲轉向現代化 IT 企業的路標,再結合 2018 年的發展狀況,新的一年,咱們能夠對 Kubernetes 有如下展望:
2019 年,Kubernetes 將完成其做爲首選、協調的主導地位;
Kubernetes 與大數據的結合將是一種趨勢;
Kubernetes 快速變化的腳步不會停滯;
Kubernetes 安全性或將成爲焦點;
IT 領導者將對他們的 Kubernetes 平臺更加挑剔。
至於屏幕前的你 —— Kubernetes 最親密的開發者,2019 年,你但願它將在哪些方面實現巨大突破呢?Kubernetes 有你,社區有你,讓咱們一塊兒期待 Kubernetes 的成長!