k8s與docker的區(qū)別 podman和docker區(qū)別?
podman和docker區(qū)別?都是容器但是前者聽(tīng)說(shuō)比后者更為先進(jìn)一點(diǎn)。不過(guò)現(xiàn)在使用Kuberne tes是的人比較多。而這個(gè)工具一般依賴docker??梢钥纯锤鞣Nk8s的教程,使用的基本都是dock
podman和docker區(qū)別?
都是容器但是前者聽(tīng)說(shuō)比后者更為先進(jìn)一點(diǎn)。不過(guò)現(xiàn)在使用Kuberne tes是的人比較多。而這個(gè)工具一般依賴docker。
可以看看各種k8s的教程,使用的基本都是docker。
podman優(yōu)缺點(diǎn)?
podman優(yōu)缺點(diǎn):Podman是一個(gè)開(kāi)源的容器管理工具,其可在大多數(shù)Linux平臺(tái)上使用,它是一種無(wú)守護(hù)程序的容器引擎,用于在Linux系統(tǒng)上開(kāi)發(fā),管理和運(yùn)行任何符合Open Container Initiative(OCI)標(biāo)準(zhǔn)的容器和容器鏡像,提供了一個(gè)與Docker兼容的命令行前端,該前端可以簡(jiǎn)單地為Docker CLI別名,即“ alias docker = podman”。
Podman控制下的容器既可以由root用戶運(yùn)行,也可以由非特權(quán)用戶運(yùn)行。
微服務(wù)在Docker k8s下如何部署?
正好最近在項(xiàng)目中用到了這些技術(shù),我來(lái)拋磚引玉吧。
首先說(shuō)結(jié)論:
1. k8s 是非常好的一項(xiàng)技術(shù),很穩(wěn)定。如果發(fā)現(xiàn)正在運(yùn)行的 pod 的數(shù)量不等于用戶設(shè)定的期望值, k8s 則會(huì)自動(dòng)創(chuàng)建或者刪除 pod,直到兩者相等。這樣既保障了服務(wù)的不間斷運(yùn)行,同時(shí)還可以動(dòng)態(tài)縮放服務(wù)的規(guī)格。用戶只要調(diào)整 pod 的 replicate 的數(shù)量即可,其他的都交給 k8s 就好,非常省心。
2. 要用 jenkins 來(lái)集成命令行操作,雖然我個(gè)人非常偏愛(ài)使用命令行,但是我不得不承認(rèn)用 jenkins 集成命令行操作會(huì)極大的提升工作效率。
下面說(shuō)實(shí)現(xiàn)步驟:(本文以 azure 平臺(tái)為例)
1. 編寫 Dockerfile
2. 在 jenkins 創(chuàng)建任務(wù),并執(zhí)行包含如下命令的腳本
2.1 git pull 源代碼到本地
2.2 docker build 命令生成鏡像文件
2.3 docker 定義鏡像文件版本號(hào)并上傳到 azure 平臺(tái)
2.4 kubectl 命令來(lái)創(chuàng)建 k8s 的 deployment & service.
2.5 每次版本更新可以調(diào)用 update image 來(lái)編譯新的鏡像版本并提供給 k8s 使用
注意在創(chuàng)建 k8s 的 deployment 和 service 的時(shí)候需要編寫 yaml 格式的配置文件, deployment 配置包括 名稱,鏡像文件地址, cpu 最大最小分配值,內(nèi)存最大最小分配值等。service 配置文件包括 名稱,引用的 deployment 名稱,以及是否使用 load balancer等。
更多詳細(xì)信息可以參考我的 wiki. https://github.com/FamingHou/MyWiki