從Kubernetes到Cloud Native——雲原生應用之路
本文簡要介紹了容器技術發展的路徑,為何Kubernetes的出現是容器技術發展到這一步的必然選擇,而為何Kuberentes又將成為雲原生應用的基石。 我的分享按照這樣的主線展開:容器->Kubernetes->微服務->Cloud Native(雲原生)->Service Mesh(服務網格)->使用場景->Open Source(開源)。 容器 容器最初是通過開發者工具而流行,可以使用它來做隔離的開發測試環境和持續集成環境,這些都是因為容器輕量級,易於配置和使用帶來的優勢,docker和docker-compose這樣的工具極大的方便的了應用開發環境的搭建,開發者就像是化學家一樣在其中小心翼翼的進行各種調試和開發。 隨著容器的在開發者中的普及,已經大家對CI流程的熟悉,容器周邊的各種工具蓬勃發展,儼然形成了一個小生態,在2016年達到頂峰,下面這張是我畫的容器生態圖: 該生態涵蓋了容器應用中從鏡像倉庫、服務編排、安全管理、持續集成與發布、存儲和網絡管理等各個方面,隨著在單主機中運行容器的成熟,集群管理和容器編排成為容器技術亟待解決的問題。 譬如化學家在實驗室中研究出來的新產品,如何推向市場,進行大規模生產,成了新的議題。 為什麼使用Kubernetes Kubernetes是容器編排系統的事實標準 在單機上運行容器,無法發揮它的最大效能,只有形成集群,才能最大程度發揮容器的良好隔離、資源分配與編排管理的優勢,而對於容器的編排管理,Swarm、Mesos和Kubernetes的大戰已經基本宣告結束,kubernetes成為了無可爭議的贏家。 下面這張圖是Kubernetes的架構圖(圖片來自網絡),其中顯示了組件之間交互的接口CNI、CRI、OCI等,這些將Kubernetes與某款具體產品解耦,給用戶最大的定製程度,使得Kubernetes有機會成為跨雲的真正的雲原生應用的操作系統。 隨著Kubernetes的日趨成熟,“Kubernetes is becoming boring”,基於該“操作系統”之上構建的適用於不同場景的應用將成為新的發展方向,就像我們將石油開采出來後,提煉出汽油、柴油、瀝青等等,所有的材料都將找到自己的用途,Kubernetes也是,畢竟我們誰也不是...