Files
kuboard-press/learning/k8s-intermediate/private-registry.md
2019-09-23 21:30:17 +08:00

4.2 KiB
Raw Blame History

vssueId, layout, description
vssueId layout description
28 LearningLayout Kubernetes教程_通过Kuboard配置Kubernetes_使用私有registry中的docker镜像

使用私有仓库中的docker镜像

企业通常会因为如下几个原因,需要搭建自己的私有 docker registry

  • 限制 docker 镜像的分发范围,例如:只允许在内网分发,或者只允许被授权的用户获取 docker 镜像
  • 提高推送 docker 镜像以及抓取 docker 镜像时的网络传输速度

在这种情况下,您需要在 Kubernetes 中使用私有 docker registry 中的 docker 镜像。本文描述了如何通过 Kuboard 完成这个配置任务。

前提假设

假设您已经搭建了自己的私有 docker registry并成功向其中推送了一个 docker 镜像,其主要参数如下:

参数名称 参数值 备注
registry地址 my-registry.example.com 推荐使用域名,也可以是 ip 地址
registry端口 5000 必须支持 HTTPS
registry用户名 myusername
registry密码 mypassowrd
repository名字 example
image名字 web-example
image标签 v1.0.1

并且,您可以在 kubernetes 集群中的任意节点通过如下 docker 命令成功抓取该 docker 镜像

docker login my-registry.example.com:5000
# username:  提示 username 时输入myusername
# password:  提示 password 时输入mypassword
docker pull my-registry.example.com:5000/example/web-example:v1.0.1

::: tip

  • 您的私有 docker registry 必须支持 HTTPS
  • 如果搭建私有的 docker registry作者只推荐 vmware 开源的 Harbor
  • 您也可以使用任何其他 docker registry只要您能够在 kubernetes 集群的任意节点通过上面的 docker pull 命令成功抓取到该 docker registry 中的镜像

:::

配置 Secrets

  • 打开 Kuboard 界面

  • 进入您要工作的 名称空间 界面

  • 点击 Secrets --> 创建 按钮

    填写表单:

    字段名称 填写内容 备注
    名称 my-registry-secret 可以使用便于您自己记忆的名字
    类型 docker仓库密码
    docker server my-registry.example.com:5000
    docker username myusername
    docker password mypassword

    如下图所示

    Kubernetes教程:使用私有仓库中的 docker 镜像

  • 点击 保存 按钮

创建工作负载

  • 此处省略创建工作负载的详细描述,请参考 部署 busybox

  • 如果要使用私有 registry 中的 docker 镜像,请正确填写如下两个字段:

    • Docker仓库的用户名密码:请选择刚才创建的 my-registry-secret

    • 镜像:请填写 my-registry.example.com:5000/example/web-example:v1.0.1

      该字段由如下几个部分组成:

      my-registry.example.com:5000/example/web-example:v1.0.1

      • 蓝色部分registry 地址
      • 绿色部分registry 端口
      • 紫色部分repository 名字
      • 红色部分image 名字
      • 棕色部分image 标签

Kubernetes教程:使用私有仓库中的 docker 镜像

::: tip

  • 工作负载只能引用同名称空间下的 Secrets
  • 如果你想使用 hub.docker.com 上的私有 repository您在填写 镜像 这个字段时,只要省略 registry 地址registry 端口 这两部分即可

:::