Docker registry¶
本节涵盖了 Docker registry 的配置,默认情况下它会部署在 seed 主机上。Docker registry 配置通常在 ${KAYOBE_CONFIG_PATH}/docker-registry.yml 中应用。有关 registry 用法和配置的更多详细信息,请参阅 Docker registry 文档。
registry 在 kayobe seed host configure 命令期间部署。
配置 registry¶
docker_registry_enabled是否启用 Docker registry。默认值为
false。设置为true时,Docker registry 将部署到docker-registry组中的所有主机上。默认情况下,这包括 seed 主机。docker_registry_env要提供给 Docker registry 容器的环境变量字典。这允许通过覆盖特定的配置选项来配置 registry,如 https://docs.container.net.cn/registry/configuration/ 中所述。例如,可以通过将 REGISTRY_PROXY_REMOTEURL 设置为“https://registry-1.docker.io”来将 registry 配置为 Docker Hub 的穿透缓存。请注意,无法将内容推送到配置为穿透缓存的 registry。默认值为
{}。docker_registry_network_modeDocker registry 容器使用的网络模式。默认值为
host。设置为bridge时,将配置端口映射以通过端口docker_registry_port暴露 registry。docker_registry_portDocker registry 服务器应侦听的端口。默认值为 4000。当
docker_registry_network_mode设置为host时,配置容器内 registry 服务器使用的端口。当docker_registry_network_mode设置为bridge时,配置 overlay 网络端口。docker_registry_datadir_volume用作 Docker registry 卷的名称或路径。默认值为
docker_registry。
TLS¶
建议为 registry 启用 TLS。
docker_registry_enable_tls是否为 registry 启用 TLS。默认值为
false。docker_registry_cert_path启用 TLS 时要使用的 TLS 证书的路径。默认值为 none。
docker_registry_key_path启用 TLS 时要使用的 TLS 密钥的路径。默认值为 none。
例如,可以将证书和密钥与 Kayobe 配置一起存储在 ${KAYOBE_CONFIG_PATH}/docker-registry/ 下。这些文件可以使用 Ansible Vault 进行加密。
docker-registry.yml¶docker_registry_enable_tls: true
docker_registry_cert_path: "{{ kayobe_config_path }}/docker-registry/cert.pem"
docker_registry_key_path: "{{ kayobe_config_path }}/docker-registry/key.pem"
基本身份验证¶
建议为 registry 启用 HTTP 基本身份验证。这需要在启用 registry 的 TLS 的情况下进行:使用未加密的 HTTP 进行基本身份验证不受支持。
docker_registry_enable_basic_auth是否为 registry 启用基本身份验证。默认值为
false。docker_registry_basic_auth_htpasswd_pathregistry 的 htpasswd 格式的密码存储的路径。默认值为 none。
密码存储使用 htpasswd 格式。以下示例显示了如何生成密码并将其添加到密码存储中的 kolla 用户。密码存储可以与 Kayobe 配置一起存储在 ${KAYOBE_CONFIG_PATH}/docker-registry/ 下。该文件可以使用 Ansible Vault 进行加密。
uuidgen | tr -d '\n' > registry-password
cat registry-password | docker run --rm -i --entrypoint htpasswd httpd:latest -niB kolla > $KAYOBE_CONFIG_PATH/docker-registry/htpasswd
接下来,我们配置 Kayobe 以启用 registry 的基本身份验证,并指定密码存储的路径。
docker-registry.yml¶docker_registry_enable_basic_auth: true
docker_registry_basic_auth_htpasswd_path: "{{ kayobe_config_path }}/docker-registry/htpasswd"
使用 registry¶
启用 registry 不会自动设置容器引擎的配置以使用它。这应该通过 docker_registry 或 podman_registry 变量 来完成。
TLS¶
如果 registry 使用私钥签名的 TLS 证书,则需要 使用 CA 证书配置 Docker 引擎。
如果启用了 TLS,则应配置 Docker 引擎以使用 HTTPS 与其通信
kolla/globals.yml¶docker_registry_insecure: false
基本身份验证¶
如果启用了基本身份验证,则需要将 Kolla Ansible 配置为使用用户名和密码。
kolla.yml¶kolla_docker_registry_username: <registry username>
kolla_docker_registry_password: <registry password>