在很多场景下,用户需要用到私有镜像仓库中的镜像进行应用的部署,在这篇文档中我们使用阿里云镜像仓库服务创建一个私有的镜像仓库,并且创建一个使用该私有镜像仓库的应用。

创建私有镜像库

如果您是首次使用阿里云容器镜像服务,会弹出提示需要您设置 Registry 登录密码,请单击前往开通,并根据界面提示,设置 Registry 登录密码。

  1. 登录容器服务管理控制台
  2. 在左侧导航栏中单击镜像仓库,选择所需的地域,然后单击创建镜像仓库
    创建镜像仓库
  3. 在弹出的对话框中配置镜像仓库,设置命名空间、仓库名称、摘要和仓库类型,本例选择私有镜像仓库类型。然后单击下一步
    创建镜像仓库
  4. 在设置代码源对话框中,将代码源设为本地仓库。
    创建本地仓库
  5. 在镜像仓库列表下,选择所需的地域和命名空间,您可看到创建完成的镜像仓库,单击右侧的管理
    管理仓库
  6. 进入仓库管理界面,单击基本信息,您可以查看如何使用该私有镜像仓库。
    镜像仓库基本信息
  7. 在Linux环境登录镜像仓库,执行如下命令,将本地的镜像上传到私有镜像仓库中。
    $ sudo docker login --username=abc@aliyun.com registry.cn-hangzhou.aliyuncs.com
     Password                                                                                 ## 镜像仓库独立登录密码:
     Login Succeed
    
    $ docker images                                                                             #以tomcat为例
    REPOSITORY                                                                 TAG                 IMAGE ID            CREATED             SIZE
    tomcat                                                                     latest              2d43521f2b1a        6 days ago          463MB
    
    $ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/XXX/tomcat-private:[镜像版本号]           
    $ sudo docker push registry.cn-hangzhou.aliyuncs.com/XXX/tomcat-private:[镜像版本号]

    结果如下:

    The push refers to a repository [registry.cn-hangzhou.aliyuncs.com/XXX/tomcat-private]
    9072c7b03a1b: Pushed
    f9701cf47c58: Pushed
    365c8156ff79: Pushed
    2de08d97c2ed: Pushed
    6b09c39b2b33: Pushed
    4172ffa172a6: Pushed
    1dccf0da88f3: Pushed
    d2070b14033b: Pushed
    63dcf81c7ca7: Pushed
    ce6466f43b11: Pushed
    719d45669b35: Pushed
    3b10514a95be: Pushed
    V1: digest: sha256:cded14cf64697961078aedfdf870e704a52270188c8194b6f70c778a8289**** size: 2836
  8. 返回该镜像仓库详情页,单击左侧导航栏中的镜像版本,您可以看到镜像已成功上传,并可查看镜像的版本信息。
    镜像版本

创建私有镜像仓库登录密钥类型的密钥

  1. 在 Kubernetes 菜单下,单击左侧导航栏中的应用配置 > 保密字典,进入保密字典页面。
  2. 选择所需的集群和命名空间,单击右上角的创建创建保密字典
  3. 配置新的保密字典。
    配置保密字典
    说明 在这里不能用容器服务控制台上的保密字典进行secret的创建。
  4. 默认返回保密字典页面,您可看到新建的密钥出现在列表中。
    保密字典清单

您也可以通过 kubectl 连接 Kubernetes 集群创建私有镜像仓库登录密钥类型的密钥。

通过私有镜像仓库创建应用

  1. 在 Kubernetes 菜单下,单击左侧导航栏中的应用 > 无状态,进入无状态(Deployment)页面。
  2. 选择所需的集群和命名空间,单击右上角的使用模板创建
    创建应用
    说明 您也可以通过单击使用镜像创建来创建应用。请参见使用镜像密钥
  3. 示例模板选择自定义,并将以下内容复制到模板中,单击创建
    apiVersion: apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1
    kind: Deployment 
    metadata: 
      name: private-image
      nameSpace: default  
      labels:  
        app: private-image  
    spec:   
      replicas: 1
      selector:
        matchLabels:
          app: private-image
      template:
        metadata:
          labels:
            app: private-image
        spec:
          containers:     - name: private-image
            image: registry.cn-hangzhou.aliyuncs.com/xxx/tomcat-private:latest
            ports:
            - containerPort: 8080
          imagePullSecrets:
          - name: regsecret

更多内容请参见kubernetes官方文档使用私有仓库