本页面介绍如何为 GKE On-Prem 配置现有 Docker 注册表。
概览
GKE On-Prem 不支持不安全的 Docker 注册表。启动 Docker 注册表时,您必须提供证书和密钥。证书可由公共证书授权机构 (CA) 签名,也可以自签名。
创建 Docker 注册表
要了解如何创建 Docker 注册表,请参阅 运行可外部访问的注册表。
配置注册表
您的管理员工作站虚拟机必须信任为您的证书签名的 CA。要建立这种信任,请在管理员工作站虚拟机上执行以下步骤:
创建用于存放证书的目录:
sudo mkdir -p /etc/docker/certs.d/[REGISTRY_SERVER]
其中,[REGISTRY_SERVER] 是运行您的 Docker 注册表的虚拟机的 IP 地址或主机名。
将您的证书文件复制到
/etc/docker/certs.d/[REGISTRY_SERVER]/ca.crt
。即使文件最初具有不同的名称,您也必须将其命名为ca.crt
。重启 Docker 服务:
sudo service docker restart
验证您是否可以登录 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 注册表。
问题排查
如需了解详情,请参阅问题排查。