kubernetes實踐之五十六:雲原生

百聯達發表於2018-06-11
一: 雲原生

雲原生包含了一組應用的模式,用於幫助企業快速,持續,可靠,規模化地交付業務軟體。雲原生由微服務架構,DevOps 和以容器為代表的敏捷基礎架構組成

二:微服務十二要素


1.基準程式碼

每個程式碼倉庫(repo)都生成docker image儲存到映象倉庫中,並使用唯一的ID管理,在Jenkins中使用編譯時的ID。

2.依賴

顯式得宣告程式碼中的依賴,使用軟體包管理工具宣告,比如Go中的Glide。

3.配置

將配置與程式碼分離,應用部署到kubernetes中可以使用容器的環境變數或ConfigMap掛載到容器中。

4.後端服務

把後端服務當作附加資源,實質上是計算儲存分離和降低服務耦合,分解單體應用。

5.構建、釋出、執行

嚴格分離構建和執行,每次修改程式碼生成新的映象,重新發布,不能直接修改執行時的程式碼和配置。

6.程式

應用程式程式應該是無狀態的,這意味著再次重啟後還可以計算出原先的狀態。

7.埠繫結

在kubernetes中每個Pod都有獨立的IP,每個執行在Pod中的應用不必關心埠是否重複,只需在service中指定埠,叢集內的service通過配置互相發現。

8.併發

每個容器都是一個程式,通過增加容器的副本數實現併發。

9.易處理

快速啟動和優雅終止可最大化健壯性,kuberentes優秀的Pod生存週期控制

10.開發環境與線上環境等價

在kubernetes中可以建立多個namespace,使用相同的映象可以很方便的複製一套環境出來,映象的使用可以很方便的部署一個後端服務。

11.日誌

把日誌當作事件流,使用stdout輸出並收集匯聚起來,例如到ES中統一檢視。

12.管理程式

後臺管理任務當作一次性程式執行,kubectl exec進入容器內部操作。


三:Kubernetes與雲原生

雲原生應用就是為了在雲上執行而開發的應用,要執行這樣的應用必須有一個作業系統,就像我們執行PC或手機應用一樣,而Kubernetes就是一個這樣的作業系統。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2155964/,如需轉載,請註明出處,否則將追究法律責任。

相關文章