1.1 准备工作
您需要创建一个企业空间、一个项目和一个用户(例如 demo4project)。该用户必须已邀请至该项目,并具有 operator 角色。
1.2 创建保密字典
创建工作负载、服务、任务或定时任务时,除了从公共仓库选择镜像,您还可以从私有仓库选择镜像。要使用私有仓库中的镜像,您必须先为私有仓库创建保密字典,以便在 KubeSphere 中集成该私有仓库。
1.2.1 步骤 1:进入保密字典页面
以 demo4project 用户登录 KubeSphere Web 控制台并进入项目,在左侧导航栏中选择配置下的保密字典,然后点击创建。
1.2.2 步骤 2:配置基本信息
设置保密字典的名称(例如 dockerhub),然后点击下一步。
您可以在对话框右上角启用编辑 YAML 来查看保密字典的 YAML 清单文件,并通过直接编辑清单文件来创建保密字典。您也可以继续执行后续步骤在控制台上创建保密字典。
1.2.3 步骤 3:配置镜像仓库信息
将类型设置为 镜像仓库信息。要在创建应用负载时使用私有仓库中的镜像,您需要配置以下字段:
- 仓库地址:镜像仓库的地址,其中包含创建应用负载时需要使用的镜像。
- 用户名:登录镜像仓库所需的用户名。
- 密码:登录镜像仓库所需的密码。
- 邮箱(可选):您的邮箱地址。
1.2.3.1 添加 Docker Hub 仓库
- 在 Docker Hub 上添加镜像仓库之前,您需要注册一个 Docker Hub 帐户。在保密字典设置页面,将仓库地址设置为 docker.io,将用户名和密码分别设置为您的 Docker ID 和密码,然后点击验证以检查地址是否可用。
- 点击创建。保密字典创建后会显示在保密字典界面。
1.2.3.2 添加 Harbor 镜像仓库
Harbor 是一个开源的可信云原生仓库项目,用于对内容进行存储、签名和扫描。通过增加用户经常需要的功能,例如安全、身份验证和管理,Harbor 扩展了开源的 Docker Distribution。Harbor 使用 HTTP 和 HTTPS 为仓库请求提供服务。
HTTP
- 您需要修改集群中所有节点的 Docker 配置。例如,如果外部 Harbor 仓库的 IP 地址为http://192.168.0.99,您需要在/etc/systemd/system/docker.service.d/docker-options.conf 文件中增加--insecure-registry=192.168.0.99 标签。
[Service]
Environment="DOCKER_OPTS=--registry-mirror=https://registry.docker-cn.com --insecure-registry=10.233.0.0/18 --data-root=/var/lib/docker --log-opt max-size=50m --log-opt max-file=5 \
--insecure-registry=192.168.0.99"
- 请将镜像仓库的地址替换成实际的地址。
- 有关Environment 字段中的标签,请参阅Dockerd Options。
- Docker 守护进程需要--insecure-registry 标签才能与不安全的仓库通信。有关该标签的更多信息,请参阅Docker 官方文档。
- 重新加载配置文件并重启 Docker。
sudo systemctl daemon-reload
sudo systemctl restart docker
- 在 KubeSphere 控制台上进入创建保密字典的数据设置页面,将类型设置为镜像仓库信息,将仓库地址设置为您的 Harbor IP 地址,并设置用户名和密码。
如需使用 Harbor 域名而非 IP 地址,您需要在集群中配置 CoreDNS 和 nodelocaldns。
下一篇文章中会介绍,如何集成使用Harobr域名的镜像仓库
- 点击创建。保密字典创建后会显示在保密字典页面。有关保密字典创建后如何编辑保密字典。
HTTPS
有关如何集成基于 HTTPS 的 Harbor 仓库,请参阅 Harbor 官方文档。请确保您已使用 docker login 命令连接到您的 Harbor 仓库。
1.3 使用镜像仓库
如果您已提前创建了私有镜像仓库的保密字典,您可以选择私有镜像仓库中的镜像。例如,创建部署时,您可以在添加容器页面点击镜像下拉列表选择一个仓库,然后输入镜像名称和标签使用镜像。