• 阿里云镜像仓库镜像迁移至私有Harbor


    下载镜像同步工具

    wget https://goodrain-delivery.oss-cn-hangzhou.aliyuncs.com/boe/image-syncer && chmod 777 image-syncer 
    

    编写配置文件auth.yaml,模板如下

    <harbor地址>:
      username: <用户名>
      password: <密码>
    <阿里云仓库地址>:
      username: <用户名>
      password: <密码>
    

    获取当前集群所有使用的镜像

    #获取命名空间,平台上运行的所有组件命名空间为随机字符串,
    $  kubectl get ns
    NAME                               STATUS   AGE
    584226fbdeeb4ecea2d20abe40285467   Active   146d
    90e1c7ecea554a418a6d22a7806fe7ef   Active   21d
    arms-prom                          Active   277d
    default                            Active   317d
    kube-node-lease                    Active   317d
    kube-public                        Active   317d
    kube-system                        Active   317d
    rainbond                           Active   317d
    rbd-system                         Active   317d
    
    #使用此命令分别指定不同的命名空间,将最终镜像输出至image.yaml文件中
    kubectl get pods -n ed90b85692894499a73c2c15b15230b1 -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s '[[:space:]]' '
    ' |sort |uniq -c |awk  '{print $2}'|awk -F: '{print $1}' >> image.yaml
    

    同步镜像

    ./image-syncer --proc=6 --auth=./auth.yaml --images=./images.yaml --namespace=boe --registry=<harbor仓库地址> --retries=3 --log=./log
    

    参数说明

    -h  --help       使用说明,会打印出一些启动参数的当前默认值
        --config     设置用户提供的配置文件所在路径,使用之前需要创建配置文件,默认为当前工作目录下的image-syncer.json文件
        --log        打印出来的log文件路径,默认打印到标准错误输出,如果将日志打印到文件将不会有命令行输出,此时需要通过cat对应的日志文件查看
        --namespace  设置默认的目标namespace,当配置文件内一条images规则的目标仓库为空,并且默认registry也不为空时有效,可以通过环境变量DEFAULT_NAMESPACE设置,同时传入命令行参数会优先使用命令行参数值
        --registry   设置默认的目标registry,当配置文件内一条images规则的目标仓库为空,并且默认namespace也不为空时有效,可以通过环境变量DEFAULT_REGISTRY设置,同时传入命令行参数会优先使用命令行参数值
        --proc       并发数,进行镜像同步的并发goroutine数量,默认为5
        --records    指定传输过程中保存已传输完成镜像信息(blob)的文件输出/读取路径,默认输出到当前工作目录,一个records记录了对应目标仓库的已迁移信息,可以用来进行连续的多次迁移(会节约大量时间,但不要把之前自己没执行过的records文件拿来用),如果有unknown blob之类的错误,可以删除该文件重新尝试
        --retries    失败同步任务的重试次数,默认为2,重试会在所有任务都被执行一遍之后开始,并且也会重新尝试对应次数生成失败任务的生成。一些偶尔出现的网络错误比如io timeout、TLS handshake timeout,都可以通过设置重试次数来减少失败的任务数量
    
  • 相关阅读:
    Some notes in Stanford CS106A(4)
    Some notes in Stanford CS106A(3)
    Some notes in Stanford CS106A(2)
    Some notes in Stanford CS106A(1)
    将前台页面的数据传到后台的方法(不调用ajax,少量数据)
    12、(扩展)获取省份表,填充于下拉列表框的简易js
    iframe刷新问题
    MVC基础
    DataList
    序列化
  • 原文地址:https://www.cnblogs.com/Aaron-23/p/14330513.html
Copyright © 2020-2023  润新知