镜像仓库

Docker 镜像是一个只读的模板,可用于部署容器服务。每个镜像都有一个唯一标识符(即镜像名称:标签)。例如,一个镜像可以包含只安装有 Apache 和几个应用的完整的 Ubuntu 操作系统软件包。镜像仓库可用于存储和分发 Docker 镜像。

本教程演示如何为不同的镜像仓库创建密钥。

准备工作

您需要创建一个企业空间、一个项目和一个帐户(例如 project-regular)。该帐户必须已邀请至该项目,并具有 operator 角色。有关更多信息,请参阅创建企业空间、项目、帐户和角色

创建密钥

创建工作负载、服务任务定时任务时,除了从公共仓库选择镜像,您还可以从私有仓库选择镜像。要使用私有仓库中的镜像,您必须先为私有仓库创建密钥,以便在 KubeSphere 中集成该私有仓库。

步骤 1:进入密钥页面

project-regular 用户登录 KubeSphere Web 控制台并进入项目,在左侧导航栏中选择配置中心下的密钥,然后点击创建

open-dashboard

步骤 2:配置基本信息

设置密钥的名称(例如 demo-registry-secret),然后点击下一步

提示

您可以在对话框右上角启用编辑模式来查看密钥的 YAML 清单文件,并通过直接编辑清单文件来创建密钥。您也可以继续执行后续步骤在控制台上创建密钥。

create-secret

步骤 3:配置镜像仓库信息

类型设置为 kubernetes.io/dockerconfigjson(镜像仓库密钥)。要在创建应用负载时使用私有仓库中的镜像,您需要配置以下字段:

  • 仓库地址:镜像仓库的地址,其中包含创建应用负载时需要使用的镜像。
  • 用户名:登录镜像仓库所需的用户名。
  • 密码:登录镜像仓库所需的密码。
  • 邮箱(可选):您的邮箱地址。

image-registry-info

添加 Docker Hub 仓库

  1. Docker Hub 上添加镜像仓库之前,您需要注册一个 Docker Hub 帐户。在密钥设置页面,将仓库地址设置为 docker.io,将用户名密码分别设置为您的 Docker ID 和密码,然后点击验证以检查地址是否可用。

    validate-registry-address

  2. 点击创建。密钥创建后会显示在密钥界面。有关密钥创建后如何编辑密钥,请参阅查看密钥详情

添加 Harbor 镜像仓库

Harbor 是一个开源的可信云原生仓库项目,用于对内容进行存储、签名和扫描。通过增加用户经常需要的功能,例如安全、身份验证和管理,Harbor 扩展了开源的 Docker Distribution。Harbor 使用 HTTP 和 HTTPS 为仓库请求提供服务。

HTTP

  1. 您需要修改集群中所有节点的 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 官方文档

  2. 重新加载配置文件并重启 Docker。

    sudo systemctl daemon-reload
    
    sudo systemctl restart docker
    
  3. 在 KubeSphere 控制台上进入创建密钥的密钥设置页面,将类型设置为镜像仓库密钥,将仓库地址设置为您的 Harbor IP 地址,并设置用户名和密码。

    harbor-address

    备注

    如需使用 Harbor 域名而非 IP 地址,您需要在集群中配置 CoreDNS 和 nodelocaldns。
  4. 点击创建。密钥创建后会显示在密钥页面。有关密钥创建后如何编辑密钥,请参阅查看密钥详情

HTTPS

有关如何集成基于 HTTPS 的 Harbor 仓库,请参阅 Harbor 官方文档。请确保您已使用 docker login 命令连接到您的 Harbor 仓库。

使用镜像仓库

如果您已提前创建了私有镜像仓库的密钥,您可以选择私有镜像仓库中的镜像。例如,创建部署时,您可以在容器镜像页面点击镜像下拉列表选择一个仓库,然后输入镜像名称和标签使用镜像。

use-image-registry


感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。