k8s將dockershim移除之後,如何繼續使用docker?


說說這個前提,就是k8s宣佈將dockershim給移除了這麼個點

 

爲什麼要移除

 

說白了,就是k8s是想建立標準的,通過的CRI,容器運行的接口,不僅僅可以支持docker,還可以支持其他的容器運行時,真正的實現插件化的

 

從哪裏移除

 

就是將dockershim的代碼,從kubelet中移除,不再有k8s維護了

 

dockershim移除後,還能繼續用docker嗎

 

當然是可以的,只是這部分的代碼,不在有k8s維護了,需要單獨的進行dockershim的安裝

 

docker移除前後,kubelet調用容器的關係發生了哪些的變化

 

1.20及之前的版本

 

dockershim內置於kubelet

 

 

 

1.20之後的版本

 

dockershim需要自行的安裝【cri-dockerd】

 

 

cri-dockerd安裝過程

 

1、下載cri-dockerd二進制文件

 

https://github.com/Mirantis/cri-dockerd/releases

 

 

 

2、安裝二進制文件

 

# 拷貝二進制文件
tar -xf cri-dockerd-0.2.6.amd64.tgz
cp cri-dockerd/cri-dockerd /usr/bin/
chmod +x /usr/bin/cri-dockerd 

 

 

3、配置cri-dockerd服務文件

 

# 配置啓動文件
cat <<"EOF" > /usr/lib/systemd/system/cri-dockerd.service
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket

[Service]
Type=notify

ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7

ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

StartLimitBurst=3

StartLimitInterval=60s

LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

TasksMax=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target

EOF

# 生成socket 文件

cat <<"EOF" > /usr/lib/systemd/system/cri-dockerd.socket
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service

[Socket]
ListenStream=%t/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker

[Install]
WantedBy=sockets.target

EOF

 

 

4、啓動cri-dockerd服務

systemctl daemon-reload

systemctl start --now cri-dockerd

systemctl status cri-docker

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章