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

102 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
vssueId: 28
layout: LearningLayout
description: 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 镜像
``` sh
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](https://github.com/goharbor/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 镜像](./private-registry.assets/image-20190923164105388.png)
* 点击 **保存** 按钮
## 创建工作负载
* 此处省略创建工作负载的详细描述,请参考 [部署 busybox](/guide/example/busybox.html)
* 如果要使用私有 registry 中的 docker 镜像,请正确填写如下两个字段:
* **Docker仓库的用户名密码**:请选择刚才创建的 `my-registry-secret`
* **镜像**:请填写 `my-registry.example.com:5000/example/web-example:v1.0.1`
该字段由如下几个部分组成:
<font color="blue" weight="500">my-registry.example.com</font>:<font color="green" weight="500">5000</font>/<font color="purple" weight="500">example</font>/<font color="red" weight="500">web-example</font>:<font color="brown" weight="500">v1.0.1</font>
* 蓝色部分registry 地址
* 绿色部分registry 端口
* 紫色部分repository 名字
* 红色部分image 名字
* 棕色部分image 标签
![Kubernetes教程使用私有仓库中的 docker 镜像](./private-registry.assets/image-20190923164229519.png)
::: tip
* 工作负载只能引用同名称空间下的 Secrets
* 如果你想使用 hub.docker.com 上的私有 repository您在填写 ***镜像*** 这个字段时,只要省略 ***registry 地址*** 和 ***registry 端口*** 这两部分即可
:::