<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          (閑聊)聽說 K8s 要甩了 Docker 了

          共 1924字,需瀏覽 4分鐘

           ·

          2020-12-08 11:44

          今天偶然看到 Kubernetes 1.20 的 ChangeLog,其中有一行大動(dòng)作:

          Deprecation
          Docker support in the kubelet is now deprecated and will be removed in a future release. The kubelet uses a module called "dockershim" which implements CRI support for Docker and it has seen maintenance issues in the Kubernetes community. We encourage you to evaluate moving to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available. (#94624, @dims) [SIG Node]

          大意是,Kubelet 中的 Docker 支持已經(jīng)進(jìn)入淘汰階段,將在未來移除。原因是 Kubelet 中使用 dockershim 組件為 Docker 提供了 CRI 支持,Kubernetes 認(rèn)為維護(hù)這個(gè)組件是有問題的。建議用戶評(píng)估并遷移到 CRI 支持更完善的運(yùn)行時(shí)上。

          其中引用了 9 月提出的 PR #94624。其中提出,為了使用 Docker,從 moby 進(jìn)行了大量移植開發(fā)了 dockershim 嵌入到 Kubelet 之中。Kubelet 和 CRI 的正確溝通方式是像 containerd、cri-o 這樣。各自使用獨(dú)自的進(jìn)程,互相以 gRPC 進(jìn)行對(duì)接。Docker 目前仍然是主流,進(jìn)行遷移需要廣而告之并逐步推進(jìn)。

          實(shí)際上早在 2018 年 5 月,Kubernetes 的 Containerd 集成就已經(jīng)宣告了 GA。其中有兩張圖很能說明問題:

          在 1.0 中,Kubelet 使用 Docker Shim 和 Docker 進(jìn)行通信,Docker 再和下面的 containerd 進(jìn)行通信。

          此時(shí)如果采用 containerd 作為運(yùn)行時(shí),Kubelet 要使用 CRI Containerd 和 Containerd 打交道,不過相對(duì)于 Docker,還是少了一跳。

          在 1.1 中這個(gè)結(jié)構(gòu)得到了優(yōu)化——Containerd 直接內(nèi)置 CRI 接口,Kubelet 甩掉包袱可以直接用 CRI 方式對(duì) Containerd 進(jìn)行控制,這樣就又省了一跳。

          此時(shí) Docker 在這個(gè)調(diào)用鏈上的位置已經(jīng)有點(diǎn)尷尬。隨著其它 CRI 運(yùn)行時(shí)的發(fā)展,這種尷尬越發(fā)明顯。#94624 中提到過,Docker 有個(gè)優(yōu)勢(shì)就是提供了 Build 等“Kubelet 不需要但是很有用”的功能;然而換個(gè)角度來看,這些功能是有悖于單一職責(zé)的原則的。

          個(gè)人認(rèn)為,Docker 這樣的全能選手,在計(jì)算節(jié)點(diǎn)上的長期存在證明了這個(gè)階段里,計(jì)算節(jié)點(diǎn)還沒有進(jìn)入理想的 cattle 狀態(tài),用戶一方面還沒有心思對(duì)“多余”的功能進(jìn)行剪裁,另一方面還有可能人工進(jìn)入節(jié)點(diǎn)上進(jìn)行運(yùn)行時(shí)范圍以外的操作。在 GA 一年多之后,砍刀開始落下,說明了什么呢?

          • 容器和 Docker 這兩個(gè)經(jīng)常被混用的詞,其間的邊界可能會(huì)變得越來越清晰,構(gòu)建、運(yùn)行、管理越來越傾向于使用各自領(lǐng)域的專業(yè)工具各司其職;

          • 計(jì)算節(jié)點(diǎn)會(huì)變得更加“沒性格”,換句話說,僅為了“運(yùn)行容器”為目的的基礎(chǔ)設(shè)施軟件,例如操作系統(tǒng)、CRI 這樣的工具會(huì)逐步代替大而全的通用 Linux Server 操作系統(tǒng)和 Docker 出現(xiàn)在容器節(jié)點(diǎn)上;

          • “沒性格”的計(jì)算節(jié)點(diǎn)將會(huì)更加容易地被創(chuàng)建、運(yùn)行、調(diào)整和銷毀,也就是說會(huì)提高容器集群規(guī)模的伸縮能力,甚至逐漸形成普遍的動(dòng)態(tài)擴(kuò)縮容能力。

          • 集群級(jí)別的批量化、自動(dòng)化運(yùn)維能力的要求會(huì)越來越高——或者以后的節(jié)點(diǎn)上沒有 ssh、vim 也未可知。

          帶點(diǎn)個(gè)人感情的說,前兩天剛剛遭遇 DockerHub 限流的我還是生出了一點(diǎn)卑鄙的快意,Google 的鐵拳再一次敲在了 Docker 的頭上,Docker EE 怎么辦?但是 Docker Desktop for Mac 還是真香的。

          瀏覽 48
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  97国产精品视频人人做人人爱 | 精品黄色在线观看 | 黄色第一页 | 欧美成人国产精品一区二区 | 久久免费黄色视频 |