美文网首页linux运维
k8s系列-06-containerd的基本操作

k8s系列-06-containerd的基本操作

作者: 运维家 | 来源:发表于2022-03-08 09:35 被阅读0次

主旨

上一篇我们介绍了containerd的安装,本篇我们来简单介绍下如何进行使用。

环境

linux服务器

前置安装

躺过的坑,需要安装下面内容,否则执行ctr run的时候会报错如下:

ctr: failed to create shim task: OCI runtime create failed: unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v2.task/default/redis/log.json: no such file or directory): runc did not terminate successfully: exit status 127: runc: symbol lookup error: runc: undefined symbol: seccomp_notify_respond: unknown

这个是说缺少依赖包 libseccomp ,需要注意的是centos 7中yum下载的版本是2.3的,版本不满足我们最新containerd的需求,需要下载2.4以上的,故而我这里提供一个2.5.1的版本,公众号“运维家”后台回复“libseccomp”即可获得下载地址。

卸载旧版本:

[yunweijia@localhost ~]$ sudo rpm -qa | grep libseccomplibseccomp-devel-2.3.1-4.el7.x86_64libseccomp-2.3.1-4.el7.x86_64[yunweijia@localhost ~]$ sudo rpm -e libseccomp-devel-2.3.1-4.el7.x86_64 --nodeps[yunweijia@localhost ~]$ sudo rpm -e libseccomp-2.3.1-4.el7.x86_64 --nodeps

安装新版本:

[yunweijia@localhost ~]$ sudo rpm -ivh libseccomp-2.5.1-1.el8.x86_64.rpm

查看现有版本:

[yunweijia@localhost ~]$ sudo rpm -qa | grep libseccomplibseccomp-2.5.1-1.el8.x86_64[yunweijia@localhost ~]$

查看帮助

# 查看总帮助[yunweijia@localhost ~]$ ctr -h# 查看子命令的帮助,举例子如下[yunweijia@localhost ~]$ ctr i -h

下载镜像

# 和docker的差异点需要注意下,他需要你输入完整的地址[yunweijia@localhost ~]$ sudo ctr i pull docker.io/library/redis:alpine# 查看现有镜像[yunweijia@localhost ~]$ sudo ctr i ls

命名空间

[yunweijia@localhost ~]$ ctr ns -hNAME:   ctr namespaces - manage namespacesUSAGE:   ctr namespaces command [command options] [arguments...]COMMANDS:   create, c   create a new namespace   list, ls    list namespaces   remove, rm  remove one or more namespaces   label       set and clear labels for a namespaceOPTIONS:   --help, -h  show help   [yunweijia@localhost ~]$ sudo ctr ns lsNAME    LABELS default        moby           [yunweijia@localhost ~]$

从上面可以看到我们在没有创建命名空间的时候,直接就有两个命名空间,这是为什么呢?正常情况下哈,containerd下只有一个default空间,我这里出现了两个命名空间是因为我这台服务器之前安装过docker,所以可以看出来docker默认的命名空间是moby。

那么我们看下docker下载的镜像,是不是会在命名空间中显示呢,以及我们上面通过ctr命令下载的镜像会不会在docker images中显示,如下:

[yunweijia@localhost ~]$ sudo ctr i lsREF                            TYPE                                                      DIGEST                                                                  SIZE     PLATFORMS                                                                                LABELS docker.io/library/redis:alpine application/vnd.docker.distribution.manifest.list.v2+json sha256:4bed291aa5efb9f0d77b76ff7d4ab71eee410962965d052552db1fb80576431d 10.4 MiB linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x -      [yunweijia@localhost ~]$[yunweijia@localhost ~]$ sudo docker imagesREPOSITORY                         TAG        IMAGE ID       CREATED        SIZEyunweijia                          jenkins    976d65da21b9   3 weeks ago    874MB192.168.112.130/yunwei/yunweijia   python3    31255eafafc3   3 weeks ago    662MByunweijia                          python3    31255eafafc3   3 weeks ago    662MBredis                              latest     f1b6973564e9   5 weeks ago    113MBnginx                              latest     c316d5a335a5   5 weeks ago    142MB[yunweijia@localhost ~]$ [yunweijia@localhost ~]$ sudo ctr -n moby i lsREF TYPE DIGEST SIZE PLATFORMS LABELS [yunweijia@localhost ~]$ sudo ctr -n default i lsREF                            TYPE                                                      DIGEST                                                                  SIZE     PLATFORMS                                                                                LABELS docker.io/library/redis:alpine application/vnd.docker.distribution.manifest.list.v2+json sha256:4bed291aa5efb9f0d77b76ff7d4ab71eee410962965d052552db1fb80576431d 10.4 MiB linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x -      [yunweijia@localhost ~]$

从上面的执行结果,可以得出结论,ctr下载的镜像不会在docker中显示;同样的,docker下载的镜像,也不会通过moby命名空间来显示出来。

docker镜像->ctr镜像

可以通过docker tag命令打个标签,然后再push到自己的harbor仓库中,再之后通过ctr i pull 命令进行下载,经过验证是可行的,此处就不再做演示了,有兴趣的小伙伴可以自行验证,harbor仓库的搭建,在我之前的文章中有写,可以翻看历史文章。

容器操作

剩余内容请转至VX公众号 “运维家” ,回复 “114” 查看。

相关文章

  • k8s系列-06-containerd的基本操作

    主旨 上一篇我们介绍了containerd的安装,本篇我们来简单介绍下如何进行使用。 环境 前置安装 躺过的坑,需...

  • 【K8S 系列】k8s 学习一,Kubernetes 基本介绍及

    【K8S 系列】k8s 学习一,Kubernetes 基本介绍及核心组件 Kubernetes 概述 官网::ht...

  • 编写一个自定义K8s Controller

    在 K8s 中当我们需要监控某个资源的变化并作一系列操作时,使用 K8s 提供的 controller 机制来实现...

  • k8s操作

    k8s的基本操作 命名空间 创建命名空间 或者 kubectl create -f ./my-namespace....

  • kubernetes高可用集群部署 - 3. kubectl工具

    kubectl是k8s集群的命令行工具, 基本上整个集群的运维操作都靠它, 所以需要事先配置好它 1. k8s运行...

  • Mat基本操作

    矩阵基本操作 opencv最基本的结构体是Mat,opencv提供了一系列Mat基本操作加载图片cv::imgre...

  • K8s初识

    K8s基本概念 Master是主服务器,node是用于部署应用容器的服务器。 Pod基本操作单元,也是应用运行的载...

  • Kubernetes学习(三)

    z1.2 Kubernetes基本架构与常用术语 Kubernetes(k8s)是自动化容器操作的开源平台,这些操...

  • K8s | Pod 基本操作

    1.定义创建pod 还是不厌其烦的来个来个世界通用Hello World,,创建一个简单的Hello World ...

  • Lucene7.2.1系列(三)查询及高亮

    系列文章: Lucene系列(一)快速入门 Lucene系列(二)luke使用及索引文档的基本操作 Lucene系...

网友评论

    本文标题:k8s系列-06-containerd的基本操作

    本文链接:https://www.haomeiwen.com/subject/qlctdrtx.html