1、 Containerd和Docker的架构区别
Docker vs. Containerd:
2、ctr & crictl的区别
ctr是containerd的一个客户端工具
crictl 是 CRI 兼容的容器运行时命令行接口,可以使用它来检查和调试 Kubernetes 节点上的容器运行时和应用程序
crictl 则直接对应了命名空间 k8s.io,即”crictl image list“等同于“ctr -n=k8s.io image list“
所以crictl是kubernetes专属的containerd管理命令,crictl -v 输出的是当前 k8s 的版本。
containerd 相比于docker , 多了 namespace概念, 每个 image和 container 都会在各自的namespace下可见, 目前k8s会使用k8s.io 作为命名空间
# ctr namespace list
NAME LABELS
k8s.io
3、docker、ctr、crictl命令对照表
# crictl stats
ONTAINER NAME CPU % MEM DISK INODES
0782b441edb09 kube-scheduler 1.05 35.98MB 12.29kB 8
16cea16f8dc35 kube-apiserver 9.26 333.5MB 65.54kB 18
67fdb8bc4579c coredns 0.40 13.58MB 45.06kB 14
74bfbb60a86ae etcd 5.45 62.98MB 36.86kB 11
8ad81cb5d6381 cilium-agent 2.10 199.9MB 208.9kB 46
98eb930b45798 kube-controller-manager 5.12 72.15MB 73.73kB 22
be8beba4f4100 coredns 0.47 13.46MB 45.06kB 14
d2132bee317cc hello 0.00 3.113MB 24.58kB 7
d6b209ce43a4c kube-proxy 0.00 35.56MB 65.54kB 24
ebef8a361a4ef cilium-operator 0.24 39.24MB 57.34kB 17
4、containerd的镜像加速配置
方法一、修改文件:vi /etc/containerd/config.toml
将如下代码:
[plugins."io.containerd.grpc.v1.cri".registry]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://registry-1.docker.io"]
改为:
[plugins."io.containerd.grpc.v1.cri".registry]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://mn3d3160.mirror.aliyuncs.com"]
方法二、export CONTAINER_REGISTRY_MIRROR=https://mn3d3160.mirror.aliyuncs.com
然后重启 containerd:
systemctl daemon-reload
systemctl restart containerd