分布式系統(tǒng) 微服務(wù)在Docker k8s下如何部署?
微服務(wù)在Docker k8s下如何部署?最近,這些技術(shù)已經(jīng)在項目中使用。讓我介紹一些有價值的想法。首先,結(jié)論如下:1。K8s是一款非常好的技術(shù),非常穩(wěn)定。如果發(fā)現(xiàn)正在運行的pod數(shù)量不等于用戶設(shè)置的期
微服務(wù)在Docker k8s下如何部署?
最近,這些技術(shù)已經(jīng)在項目中使用。讓我介紹一些有價值的想法。
首先,結(jié)論如下:
1。K8s是一款非常好的技術(shù),非常穩(wěn)定。如果發(fā)現(xiàn)正在運行的pod數(shù)量不等于用戶設(shè)置的期望值,k8s將自動創(chuàng)建或刪除pod,直到它們相等為止。這不僅確保了服務(wù)的不間斷運行,而且還動態(tài)地擴展了服務(wù)規(guī)范。用戶只需要調(diào)整pod的復制次數(shù),剩下的留給k8s,這很容易讓人擔心。
2. 使用Jenkins集成命令行操作,雖然我個人比較喜歡使用命令行,但我不得不承認,使用Jenkins集成命令行操作將大大提高工作效率。
實現(xiàn)步驟如下:(本文以Azure平臺為例)
1。寫dockerfile
2。在Jenkins中創(chuàng)建任務(wù)并執(zhí)行包含以下命令的腳本
2.1 git將源代碼拉到本地
2.2 docker build命令生成映像文件
2.3 docker定義映像文件版本號并上載到Azure平臺
2.4 kubectl命令創(chuàng)建k8s部署和服務(wù)。
每個版本2.5update,可以調(diào)用update image來編譯新的鏡像版本并提供給k8s
注意,在創(chuàng)建k8s的部署和服務(wù)時,需要用yaml格式編寫配置文件。部署配置包括名稱、映像文件地址、最大和最小CPU分配值、最大和最小內(nèi)存分配值等。服務(wù)配置文件包括名稱、引用的部署名稱以及是否使用負載平衡器。
有關(guān)更多詳細信息,請參閱我的wikihttps://github.com/FamingHou/MyWiki
docker最原始的基礎(chǔ)鏡像怎么來的?
像Ubuntu和CentOS這樣的基本映像應(yīng)該由docker創(chuàng)建。
當我們建立圖像時,我們可以直接從這些基本圖像。當然,我們也可以從一些其他更高級的圖像或我們自己的圖像。
例如,jeknis是一個持續(xù)集成軟件。Jeknis正式提供了Jeknis/Jeknis的基本鏡像,我們可以直接用它來啟動服務(wù)。但也許我們需要在容器內(nèi)調(diào)用docker或k8s命令,然后我們可以通過dockerfile安裝基于jeknis基本映像的docker客戶端或k8s客戶端,這樣我們就可以通過使用新映像在容器內(nèi)使用docker和k8s命令來啟動服務(wù)。