diff --git a/.vuepress/config.js b/.vuepress/config.js index d3afbcd..b14d258 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -180,6 +180,7 @@ module.exports = { children: [ 'k8s-intermediate/ingress', 'k8s-intermediate/config-map', + 'k8s-intermediate/private-registry', // 'k8s-intermediate/recommendation', ] }, diff --git a/learning/k8s-intermediate/private-registry.assets/image-20190902223052044.png b/learning/k8s-intermediate/private-registry.assets/image-20190902223052044.png new file mode 100644 index 0000000..f348792 Binary files /dev/null and b/learning/k8s-intermediate/private-registry.assets/image-20190902223052044.png differ diff --git a/learning/k8s-intermediate/private-registry.assets/image-20190902223708740.png b/learning/k8s-intermediate/private-registry.assets/image-20190902223708740.png new file mode 100644 index 0000000..7d2232b Binary files /dev/null and b/learning/k8s-intermediate/private-registry.assets/image-20190902223708740.png differ diff --git a/learning/k8s-intermediate/private-registry.md b/learning/k8s-intermediate/private-registry.md new file mode 100644 index 0000000..5dda0e1 --- /dev/null +++ b/learning/k8s-intermediate/private-registry.md @@ -0,0 +1,93 @@ +--- +description: 通过Kuboard 配置 Kubernetes,使用私有 registry 中的 docker 镜像 +--- + +# 使用私有 registry 中的 docker 镜像 + +## 前提假设 + +假设您已经搭建了自己的私有 docker registry,并成功向其中推送了一个 docker 镜像,其主要参数如下: + +| 参数名称 | 参数值 | 备注 | +| -------------- | ----------------------- | -------------- | +| registry地址 | my-registry.example.com | | +| 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.example.com | 可以使用便于您自己记忆的名字 | + | 类型 | docker仓库密码 | | + | docker server | my-registry.example.com:5000 | | + | docker username | myusername | | + | docker password | mypassword | | + + 如下图所示 + + ![image-20190902223052044](./private-registry.assets/image-20190902223052044.png) + +* 点击 **保存** 按钮 + + + +## 创建工作负载 + +* 此处省略创建工作负载的详细描述,请参考 [部署 busybox](/guide/example/busybox.html) + +* 如果要使用私有 registry 中的 docker 镜像,请正确填写如下两个字段: + + * Docker仓库的用户名密码,请选择刚才创建的 `my-registry.example.com` + + * 镜像,请填写 `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 标签 + +![image-20190902223708740](./private-registry.assets/image-20190902223708740.png) + + + +::: tip + +* 工作负载只能引用同名称空间下的 Secrets +* 如果你想使用 hub.docker.com 上的私有 repository,您在填写 ***镜像*** 这个字段时,只要省略 ***registry 地址*** 和 ***registry 端口*** 这两部分即可 + +:::