• 在containerd,将 ‘ctr image‘ 转换成 ‘crictl image‘


    1、使用ctr导入镜像
    ctr image import dashboard.tar

    #查询镜像,为什么没有刚才导入的镜像?
    crictl images

    2、原因分析
    ctr是containerd自带的工具,有命名空间的概念,若是k8s相关的镜像,都默认在k8s.io这个命名空间,所以导入镜像时需要指定命令空间为k8s.io

    #使用ctr命令指定命名空间导入镜像
    ctr -n=k8s.io image import dashboard.tar

    #查看镜像,可以看到可以查询到了
    crictl images


    ctr 是 containerd 的一个客户端工具。
    crictl 是 CRI 兼容的容器运行时命令行接口,可以使用它来检查和调试 k8s 节点上的容器运行时和应用程序。
    ctr -v 输出的是 containerd 的版本,crictl -v 输出的是当前 k8s 的版本,从结果显而易见你可以认为 crictl 是用于 k8s 的。

    一般来说某个主机安装了 k8s 后,命令行才会有 crictl 命令。而 ctr 是跟 k8s 无关的,主机安装了 containerd 服务后就可以操作 ctr 命令。

    ​​​​​​​===============================================

    # docker镜像 迁移 ctr
    docker save -o o.tar tensorflow/tensorflow:2.2.3-gpu-py3
    # ctr导入镜像 不支持 build, commit 镜像
    ctr -n k8s.io i  import  o.tar
    ctr -n default i  import  o.tar

    ===============================================

    或者将image是从一台机器上的image迁移到另一台机器上
    ###  Convert 'ctr image' to 'crictl image'

    ## pull image
    ctr image pull k8s.gcr.io/prometheus-adapter/prometheus-adapter:v0.9.1
    ctr image pull k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.3.0
    or 
    crictl pull k8s.gcr.io/prometheus-adapter/prometheus-adapter:v0.9.1
    ctr image pull k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.3.0

    #export image
    ctr image export adapter.tar k8s.gcr.io/prometheus-adapter/prometheus-adapter:v0.9.1
    ctr image export metrics.tar k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.3.0

    #After migrating to the specified server, distribute the image to each Node
    ansible kube-node -i ~/kubespray/inventory/sdan_cluster/hosts.ini -m copy -a 'src=/root/images/adapter.tar dest=/root/ owner=root group=root mode=0644'
    ansible kube-node -i ~/kubespray/inventory/sdan_cluster/hosts.ini -m copy -a 'src=/root/images/metrics.tar dest=/root/ owner=root group=root mode=0644'

    #import image
    ansible kube-node -o -i ~/kubespray/inventory/sdan_cluster/hosts.ini -m command -a "ctr -n=k8s.io image import /root/adapter.tar"
    ansible kube-node -o -i ~/kubespray/inventory/sdan_cluster/hosts.ini -m command -a "ctr -n=k8s.io image import /root/metrics.tar"

    ===============================================

    ##要下载镜像的名称,可以通过 kubeadm config images list命令获取
    kubeadm config images list --kubernetes-version=v1.15.2

     

  • 相关阅读:
    Go-Python-Java-C-LeetCode高分解法-第十一周合集
    LeetCode 周赛上分之旅 #49 再探内向基环树
    【TcaplusDB知识库】Tmonitor系统升级介绍
    Linux之输入输出重定向和管道
    【深入设计模式】装饰模式—什么是装饰模式?装饰模式在源码中的应用
    谷歌浏览器 ERR_MANDATORY_PROXY_CONFIGURATION_FAILED 报错的处理方式
    【路径规划】辅助点与多段贝塞尔平滑RRT
    109376-05-8,Boc-QRR-AMC, Hepsin substrate
    ideaSSM在线商务管理系统VS开发mysql数据库web结构java编程计算机网页源码maven项目
    java读取指定文件夹下的全部文件,并输出文件名,文件大小,文件创建时间
  • 原文地址:https://blog.csdn.net/erhaiou2008/article/details/126946817