配置私有 Docker 注册表

本页面介绍如何为 GKE On-Prem 配置现有 Docker 注册表。

概览

GKE On-Prem 不支持不安全的 Docker 注册表。启动 Docker 注册表时,您必须提供证书和密钥。证书可由公共证书授权机构 (CA) 签名,也可以自签名。

创建 Docker 注册表

要了解如何创建 Docker 注册表,请参阅 运行可外部访问的注册表

配置注册表

您的管理员工作站虚拟机必须信任为您的证书签名的 CA。要建立这种信任,请在管理员工作站虚拟机上执行以下步骤:

  1. 创建用于存放证书的目录:

    sudo mkdir -p /etc/docker/certs.d/[REGISTRY_SERVER]

    其中,[REGISTRY_SERVER] 是运行您的 Docker 注册表的虚拟机的 IP 地址或主机名。

  2. 将您的证书文件复制到 /etc/docker/certs.d/[REGISTRY_SERVER]/ca.crt。即使文件最初具有不同的名称,您也必须将其命名为 ca.crt

  3. 重启 Docker 服务:

    sudo service docker restart
  4. 验证您是否可以登录 Docker:

    docker login -u [USERNAME] -p [PASSWORD] [REGISTRY_SERVER]

    其中,[USERNAME][PASSWORD] 是用于登录 Docker 注册表的凭据。

    可能的错误和解决方案

    • Get https://[REGISTRY_SERVER]/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers). 确保运行 Docker 注册表的虚拟机拥有正确的 IP 地址。

    • login attempt to https://[REGISTRY_SERVER]/v2/ failed with status: 401 Unauthorized。确保您的用户名和密码正确无误。

    • Get https://[REGISTRY_SERVER]/v1/users/: x509: certificate signed by unknown authority。您的管理员工作站虚拟机不信任该证书。

当您在安装期间运行 gkectl prepare 时,安装所需的映像将被推送到您的 Docker 注册表。

问题排查

如需了解详情,请参阅问题排查