Kubernetes為什麼將會棄用Docker支援? - Dixie3Flatline

banq發表於2020-12-03

從Kubernetes v1.20起,您將收到Docker棄用警告。之後,您將需要使用其他容器執行時Runtime。是的,這會破壞您的叢集。您可能會認為Docker == Kubernetes。不是這樣!
我們稱之為Docker的東西實際上是整個技術堆疊,其中包括稱為容器的東西以及其他一些東西,例如一些奇特的UX更改,這些變化使人類更易於互動。容器化本身就是高階容器的執行時Runtime。
不過,Kubernetes並不需要所有這些花哨的UX東西。它只需要容器執行時Runtime。使用Docker(整個堆疊)作為您的容器執行時意味著:Kubernetes必須使用稱為dockershim的東西與它實際需要的部分進行互動。
這是因為Docker不符合CRI(容器執行時介面)。Dockershim會讓K8s解決這個問題,但這也意味著我們要維護一個完全獨立的事物Dockershim,以便可以將Docker用作我們的執行時Runtime。
這糟透了,不方便,解決方案是刪除抽象Dockershim,僅在Kubernetes中使用containerd作為我們的容器執行時。同樣,因為Kubernetes不是人,它不需要UX增強功能。
因此,您不必驚慌。Docker還沒有死(還),它仍然有其用途。您只是不能再將其用作Kubernetes中的容器執行時了。在下一個版本之後,您需要切換到containerd。
是的,您可以繼續使用舊版本的Kubernetes。
新Kubernetes仍將執行由Docker構建的映象!這對於開發人員來說並不會改變很多,那些映象仍然符合OCI(開放容器倡議),並且containerd知道如何處理它們。
使用containerd或CRI-O資訊:https://kubernetes.io/docs/setup/production-environment/container-runtimes/
 

相關文章