• Containerd 学习


    一、Containerd 介绍

    Containerd 是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。Containerd 可以在宿主机中管理完整的容器生命周期:容器镜像的传输和存储、容器的执行和管理、存储和网络等

    1、命令行工具

    ctr:containerd 相比于docker , 多了namespace概念, 每个image和container 都会在各自的namespace下可见, 目前k8s会使用k8s.io 作为命名空间

    #删除镜像
    ctr -n k8s.io i rm k8s.gcr.io/pause:3.2
    
    #拉取镜像
    ctr -n k8s.io i pull -k k8s.gcr.io/pause:3.2
    
    #推送镜像
    ctr -n k8s.io i push -k k8s.gcr.io/pause:3.2
    
    #导出镜像
    ctr -n k8s.io i export pause.tar k8s.gcr.io/pause:3.2
    
    #导入镜像
    ctr -n k8s.io i import pause.tar
    
    不支持 build,commit 镜像

    crictl:是为k8s使用containerd而制作的, 其他非k8s的创建的 crictl是无法看到和调试的, 也就是说用ctr run 运行的容器无法使用crictl 看到

    crictl 使用命名空间 k8s.io

    nerdctl :(替代docker cli):

    自从 Containerd 发布 1.5 以后,nerdctl 工具配合 Containerd 的情况下基本已经可以替换掉 Docker 和 Docker Compose;

    nerdctl 官方发布包包含两个安装版本:

    • Minimal: 仅包含 nerdctl 二进制文件以及 rootless 模式下的辅助安装脚本
    • Full: 看名字就能知道是个全量包,其包含了 Containerd、CNI、runc、BuildKit 等完整组件

    nerdctl 项目地址

    https://github.com/containerd/nerdctl/releases/

     GitHub - containerd/nerdctl: Docker-compatible CLI for containerd, with support for Compose

    2、nerdctl的下载安装

    ##下载
    wget  https://github.com/containerd/nerdctl/releases/download/v0.11.1/nerdctl-full-0.11.1-linux-amd64.tar.gz
    
    ##解压
    tar Cxzvvf /usr/local nerdctl-full-0.11.1-linux-amd64.tar.gz
    
    ## 启动 containerd 和 buildkitd
    systemctl enable --now containerd
    systemctl enable --now buildkit

    二、nerdctl 运用

    1、pull  images

    ctr image  pull  docker.io/cnrancher/rancher:v2.4.17-ent
    nerdctl pull  rancher/cluster-proportional-autoscaler-amd64:1.0.0

    2、run 一个容器

    nerdctl   run -d --privileged --restart=always  --name zjz-rancher  -p 80:80 -p 443:443  docker.io/cnrancher/rancher:v2.4.17-ent

    三、 containerd连接harbor仓库

    1、github项目地址介绍

    cri/registry.md at master · containerd/cri · GitHub

    2、containerd的配置文件(docker 的 daemon.json)

    vim   /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.mirrors."10.10.20.71:9998"]
    endpoint = ["https://10.10.20.71:9998"]
    [plugins."io.containerd.grpc.v1.cri".registry.configs]
    [plugins."io.containerd.grpc.v1.cri".registry.configs."10.10.20.71:9998".tls]
    insecure_skip_verify = true
    [plugins."io.containerd.grpc.v1.cri".registry.configs."10.10.20.71:9998".auth]
    username = "admin"
    password = "Harbor12345"
    

    其中“10.10.20.71.9998”是私人仓库地址。
    insecure_skip_verify = true 意为跳过证书认证。

    保存并重启containerd服务即可

    systemctl restart containerd
    

      

     终于可以像使用 Docker 一样丝滑地使用 Containerd 了!-InfoQ 

    https://github.com/containerd/containerd/releases   containerd的github项目地址

    https://www.cnblogs.com/sparkdev/p/9063042.html    技术介绍和测试

  • 相关阅读:
    Fileupload文件上传下载
    携程运维自动化平台,上万服务器变更也可以很轻松
    判断某个日期是不是该月的第一天或最后一天
    js format 设置日期格式 将Fri Dec 12 2014 08:00:00 GMT+0800改为2014-12-12 8:00:00
    js13位时间戳转换,10位时间戳转换
    java io包File类
    为什么前端实现的页面跟设计师的设计稿的差别那么大?
    为什么前端实现的页面跟设计师的设计稿的差别那么大?
    为什么前端实现的页面跟设计师的设计稿的差别那么大?
    为什么前端实现的页面跟设计师的设计稿的差别那么大?
  • 原文地址:https://www.cnblogs.com/zjz20/p/14136369.html
Copyright © 2020-2023  润新知