W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Kubernetes 的 ?dockershim
?組件使得你可以把 Docker 用作 Kubernetes 的 容器運行時。 在 Kubernetes v1.24 版本中,內(nèi)建組件 ?dockershim
?被移除。
本頁講解你的集群把 Docker 用作容器運行時的運作機(jī)制, 并提供使用 ?dockershim
?時,它所扮演角色的詳細(xì)信息, 繼而展示了一組操作,可用來檢查棄用 ?dockershim
?對你的工作負(fù)載是否有影響。
即使你是通過 Docker 創(chuàng)建的應(yīng)用容器,也不妨礙你在其他任何容器運行時上運行這些容器。 這種使用 Docker 的方式并不構(gòu)成對 Docker 作為一個容器運行時的依賴。
當(dāng)用了別的容器運行時之后,Docker 命令可能不工作,或者產(chǎn)生意外的輸出。 下面是判定你是否依賴于 Docker 的方法。
docker ps
?)、重新啟動 Docker 服務(wù)(如 ?systemctl restart docker.service
?)或修改 Docker 配置文件 ?/etc/docker/daemon.json
?。/etc/docker/daemon.json
?)中容器鏡像倉庫的鏡像(mirror)站點設(shè)置。 這些配置通常需要針對不同容器運行時來重新設(shè)置。容器運行時是一個軟件, 用來運行組成 Kubernetes Pod 的容器。 Kubernetes 負(fù)責(zé)編排和調(diào)度 Pod;在每一個節(jié)點上,kubelet 使用抽象的容器運行時接口,所以你可以任意選用兼容的容器運行時。
在早期版本中,Kubernetes 提供的兼容性支持一個容器運行時:Docker。 在 Kubernetes 后來的發(fā)展歷史中,集群運營人員希望采用別的容器運行時。 于是 CRI 被設(shè)計出來滿足這類靈活性需求 - 而 kubelet 亦開始支持 CRI。 然而,因為 Docker 在 CRI 規(guī)范創(chuàng)建之前就已經(jīng)存在,Kubernetes 就創(chuàng)建了一個適配器組件 dockershim。 dockershim 適配器允許 kubelet 與 Docker 交互,就好像 Docker 是一個 CRI 兼容的運行時一樣。
切換到 Containerd 容器運行時可以消除掉中間環(huán)節(jié)。 所有相同的容器都可由 Containerd 這類容器運行時來運行。 但是現(xiàn)在,由于直接用容器運行時調(diào)度容器,它們對 Docker 是不可見的。 因此,你以前用來檢查這些容器的 Docker 工具或漂亮的 UI 都不再可用。
你不能再使用 ?docker ps
? 或 ?docker inspect
? 命令來獲取容器信息。 由于你不能列出容器,因此你不能獲取日志、停止容器,甚至不能通過 ?docker exec
? 在容器中執(zhí)行命令。
Note:
如果你在用 Kubernetes 運行工作負(fù)載,最好通過 Kubernetes API 停止容器, 而不是通過容器運行時來停止它們 (此建議適用于所有容器運行時,不僅僅是針對 Docker)。
你仍然可以下載鏡像,或者用 ?docker build
? 命令創(chuàng)建它們。 但用 Docker 創(chuàng)建、下載的鏡像,對于容器運行時和 Kubernetes,均不可見。 為了在 Kubernetes 中使用,需要把鏡像推送(push)到某鏡像倉庫。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: