docker 上传华为镜像仓库

一.上传镜像

由于docker hub在国外,上传下载速度慢,并且免费的私有镜像仓库只能创建一个,所以尝试选择华为镜像仓库试试。华为镜像仓库介绍地址:https://support.huaweicloud.com/usermanual-swr/swr_01_0009.html

步骤:

    1. 打开上面链接地址,通过控制台进入,创建组织名称(hushaoren)

    2. 在控制台左边菜单点击镜像资源,点击客户端上传,如下图所示:

   

 

  3.上传介绍说明地址: https://support.huaweicloud.com/usermanual-swr/swr_01_0011.html

  主要是:生成的临时docker login指令有效期为24小时,如下图所示:

    

 

   上传后,再到控制台查看,如下所示:

 二.创建长期登录

  资料说明:https://support.huaweicloud.com/swr/index.html

  包含AK和SK,我的如下所示:

  User Name-----hw59714420

  Access Key Id------RBKW3WNYYOLPIS5WFG1X

  Secret Access Key ----jLMzNH6bMvegyF956WSntfUipL7o8XxgHwBKXK7Z

 

    在k8s服务器linux系统,执行如下命令获取登录密钥

 格式如下:

        printf "$AK" | openssl dgst -binary -sha256 -hmac "$SK" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'

   执行下面命令,获取登录密钥:

     printf "RBKW3WNYYOLPIS5WFG1X" | openssl dgst -binary -sha256 -hmac "jLMzNH6bMvegyF956WSntfUipL7o8XxgHwBKXK7Z" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'

   密钥如下:

      c2c8d9571e428ae10b95ee842a7aee688ac5f30606b0f99f4a941cf9817f0190

   最后登录 

    docker login -u  cn-east-3@RBKW3WNYYOLPIS5WFG1X -p c2c8d9571e428ae10b95ee842a7aee688ac5f30606b0f99f4a941cf9817f0190 swr.cn-east-3.myhuaweicloud.com

 

三.k8s服务拉取

  1.使用docker pull先拉取安装

    docker pull swr.cn-east-3.myhuaweicloud.com/hushaoren/userpermissionapi:v1

  2.配置ymal文件

    与以前docker hub有一点不同的是 imagePullPolicy: IfNotPresent, 如果本地有就不下拉。

 

四.版本迭代更新

  1.在测试服务器上,生成userpermissionapi:v2镜像

   程序将修改后,重新发布文件,覆盖测试服务器opt下的PermissionApi文件夹。生成userpermissionapi:v2镜像

    [root@k8s-host PermissionApi]#  docker build -t userpermissionapi:v2 .

  2.打上tag标签

    [root@k8s-host PermissionApi]# docker tag userpermissionapi:v2 swr.cn-east-3.myhuaweicloud.com/hushaoren/userpermissionapi:v2

  3.pull到华为镜像云swr服务器

    docker push  swr.cn-east-3.myhuaweicloud.com/hushaoren/userpermissionapi:v2

   推送成功后,如下所示:

   4. 修改ymal文件

    修改userpermissionservice-rc.ymal文件,重新覆盖k8s服务器opt目录上的,主要修改如下:

      image: swr.cn-east-3.myhuaweicloud.com/hushaoren/userpermissionapi:v2

  5. 更新Pod

           #替换关联的yaml文件

   [root@k8s-host opt]# kubectl replace -f userpermissionservice-rc.ymal

          [root@k8s-host opt]# kubectl get pod

          #删除该pod,通过yaml文件重新生成新的pod

   [root@k8s-host opt]# kubectl delete pod userpermissionapi-ggtv6

     pod "userpermissionapi-ggtv6" deleted

   删除后会,k8s会去重新拉取 userpermission-svc.ymal文件生成新的pod,此时更为了v2, 这一切都是自动的。检验如下所示 kubectl describe pod xxx:

   pod更新后,之前关联的镜像容器会自动停掉,通过docker ps 来查看。   旧的镜像文件,通过docker images 来查看。 可以删除一些无用的镜像或容器。

 

posted on 2022-12-27 10:49  花阴偷移  阅读(88)  评论(0编辑  收藏  举报

导航