正好最近在項目中用到了這些技術,我來拋磚引玉吧。

首先說結論:

1. k8s 是非常好的一項技術,很穩定。如果發現正在運行的 pod 的數量不等於用戶設定的期望值, k8s 則會自動創建或者刪除 pod,直到兩者相等。這樣既保障了服務的不間斷運行,同時還可以動態縮放服務的規格。用戶只要調整 pod 的 replicate 的數量即可,其他的都交給 k8s 就好,非常省心。

2. 要用 jenkins 來集成命令行操作,雖然我個人非常偏愛使用命令行,但是我不得不承認用 jenkins 集成命令行操作會極大的提升工作效率。

下面說實現步驟:(本文以 azure 平臺為例)

1. 編寫 Dockerfile

2. 在 jenkins 創建任務,並執行包含如下命令的腳本

2.1 git pull 源代碼到本地

2.2 docker build 命令生成鏡像文件

2.3 docker 定義鏡像文件版本號並上傳到 azure 平臺

2.4 kubectl 命令來創建 k8s 的 deployment & service.

2.5 每次版本更新可以調用 update image 來編譯新的鏡像版本並提供給 k8s 使用

注意在創建 k8s 的 deployment 和 service 的時候需要編寫 yaml 格式的配置文件, deployment 配置包括 名稱,鏡像文件地址, cpu 最大最小分配值,內存最大最小分配值等。service 配置文件包括 名稱,引用的 deployment 名稱,以及是否使用 load balancer等。

更多詳細信息可以參考我的 wiki. https://github.com/FamingHou/MyWiki


摟上全對,但還少了最重的.yaml 編寫k8s yaml 包括pod 控制器 pod 運行探針 server服務 confmap 配置參數 ingress 七層負栽頭部 還有存儲pv pvc pod 日記收集系統ELK k8s監控系統普羅米修斯 如果還要做更詳細流量控制還有一個 istio 好了就這麼多了


推薦閱讀:
相關文章