一、Containerd常用命令
说明:kubernetes 1.24.x及以后版本默认CRI为containerd,cri称之为容器运行时插件。其中ctr是containerd自带的CLI命令行工具,crictl是k8s中CRI(容器运行时接口)的客户端,k8s使用该客户端和containerd进行交互。
说明:执行crictl ps命令报错WARN[0000] runtime connect using default endpoints: [unix:///var/run/dockershim.sock unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock]. As the default settings are now deprecated, you should set the endpoint instead。
这是因为你只装了containerd,而你使用crictl时候,crictl不知道你的默认的运行时是谁,到底是docker呢,还是containerd呢,还是crio呢,所以crictl根本不知情,导致出现错误。通过上述错误,发现默认配置目前已经被遗弃,所以你需要手动指定你的容器运行时。
root@k8s-master-62:~# crictl config runtime-endpoint unix:///run/containerd/containerd.sock
root@k8s-master-62:~# crictl config image-endpoint unix:///run/containerd/containerd.sock
ctr和crictl命令具体区别如下:
命令 | ctr | crictl |
---|---|---|
查看运行的容器 | ctr container ls | crictl ps |
查看镜像 | ctr image ls | crictl images |
查看容器日志 | 无 | crictl logs 容器ID |
查看容器数据信息 | ctr container info 容器ID | crictl inspect 容器ID |
查看容器资源信息 | 无 | crictl stats |
启动/关闭已有的容器 | ctr task start/kill 容器ID | crictl start/stop 容器ID |
运行一个新的容器 | ctr run | 无(最小单元为 pod) |
修改镜像标签 | ctr image tag | 无 |
创建一个新的容器 | ctr container create | crictl create |
导入镜像 | ctr image import | 无 |
导出镜像 | ctr image export | 无 |
删除容器 | ctr container rm 容器ID | crictl rm 容器ID |
删除镜像 | ctr image rm 镜像ID | crictl rmi 镜像ID |
拉取镜像 | ctr image pull | ctictl pull |
推送镜像 | ctr image push | 无 |
在容器内执行命令 | 无 | crictl exec |
注意:containerd为runc时,标准输出(stdout)的日志文件存放/var/log/containers目录下。如下图所示:
总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:企业级K8s集群运维实战