調用關系的對比
image.png
image.png
容器日志及相關參數
|
對比項 |
docker |
containerd |
|---|---|---|
|
存儲路徑 |
docker作為k8s容器運行時的情況下,容器日志的落盤由docker來完成, 保存在類似 |
containerd作為k8s容器運行時的情況下, 容器日志的落盤由kubelet來完成,保存到 |
|
配置參數 |
在docker配置文件中指定: "log-driver": "json-file", "log-opts": {"max-size": "100m","max-file": "5"} |
方法一:在kubelet參數中指定: --container-log-max-files=5 --container-log-max-size="100Mi" 方法二:在KubeletConfiguration中指定: "containerLogMaxSize": "100Mi", "containerLogMaxFiles": 5, |
|
把容器日志保存到數據盤 |
把數據盤掛載到"data-root"(缺省是/var/lib/docker)即可 |
創建一個軟鏈接/var/log/pods指向數據盤掛載點下的某個目錄 在TKE中選擇"將容器和鏡像存儲在數據盤",會自動創建軟鏈接/var/log/pods |
stream server
kubectl exec/logs等命令需要在apiserver跟容器運行時之間建立流轉發通道。
docker API本身提供stream服務,kubelet內部的docker-shim會通過docker API做流轉發。
containerd的stream服務需要單獨配置:
[plugins.cri] stream_server_address = "127.0.0.1" stream_server_port = "0" enable_tls_streaming = false
在k8s 1.11之前,kubelet並不會做stream proxy, 只會做redirect。也就是把containerd暴露的stream server地址告訴apiserver, 讓apiserver直接來訪問containerd的stream server。這種情況下,需要給stream server使能tle認證來做安全防護。
從k8s1.11引入了kubelet stream proxy (https://github.com/kubernetes/kubernetes/pull/64006), 從而使得containerd stream server只需要監聽本地地址即可。
CNI網絡
|
對比項 |
docker |
containerd |
|---|---|---|
|
誰負責調用CNI |
kubelet內部的docker-shim |
containerd內置的cri-plugin(containerd 1.1以后) |
|
如何配置CNI |
kubelet參數 --cni-bin-dir 和 --cni-conf-dir |
containerd配置文件(toml): plugins.cri.cni bin_dir = "/opt/cni/bin" conf_dir = "/etc/cni/net.d" |
常見命令
containerd不支持docker API和docker CLI, 但是可以通過cri-tool實現類似的功能。
|
鏡像相關功能 |
docker |
containerd |
|---|---|---|
|
顯示本地鏡像列表 |
docker images |
crictl images |
|
下載鏡像 |
docker pull |
crictl pull |
|
上傳鏡像 |
docke push |
無 |
|
刪除本地鏡像 |
docker rmi |
crictl rmi |
|
查看鏡像詳情 |
docker inspect |
crictl inspecti |
|
容器相關功能 |
docker |
containerd |
|---|---|---|
|
顯示容器列表 |
docker ps |
crictl ps |
|
創建容器 |
docker create |
crtctl create |
|
啟動容器 |
docker start |
crtctl start |
|
停止容器 |
docker stop |
crictl stop |
|
刪除容器 |
docker rm |
crictl rm |
|
查看容器詳情 |
docker inspect |
crictl inspect |
|
attach |
docker attach |
crictl attach |
|
exec |
docker exec |
crictl exec |
|
logs |
docker logs |
crictl logs |
|
stats |
docker stats |
crictl stats |
|
POD相關功能 |
docker |
containerd |
|---|---|---|
|
顯示POD列表 |
無 |
crictl pods |
|
查看POD詳情 |
無 |
crictl inspectp |
|
運行POD |
無 |
crictl runp |
|
停止POD |
無 |
crictl stopp |
原創聲明,本文系作者授權雲+社區發表,未經許可,不得轉載。
如有侵權,請聯系 yunjia_community@tencent.com 刪除。
