Docker Registry for a secondary node

Docker Registry for a secondary node

您可以在次要 Geo 节点上设置一个 ,以镜像 Geo 节点上的Docker Registry .

Docker Registry 当前支持几种类型的存储. 如果您在节点上为 Docker 注册表选择分布式存储( , gcss3swiftoss ),则也可以将相同的存储用于辅助 Docker 注册表. 有关更多信息,请阅读部署注册表时的 ,以及如何为 GitLab 的集成Container Registry设置存储驱动程序.

Replicating Docker Registry

您可以启用与存储无关的复制,以便将其用于云或本地存储. 每当将新映像推送到节点时,每个辅助节点都会将其拖到其自己的容器存储库中.

要配置 Docker Registry 复制:

  1. 配置辅助节点 .
  2. 验证 Docker Registry .

在执行下一步之前,请确保已设置 Container Registry 并在节点上工作.

  1. SSH 到您的 GitLab 服务器并以 root 用户身份登录:

  2. Edit /etc/gitlab/gitlab.rb:

    1. registry['notifications'] = [
    2. {
    3. 'name' => 'geo_event',
    4. 'url' => 'https://example.com/api/v4/container_registry_event/events',
    5. 'threshold' => 5,
    6. 'backoff' => '1s',
    7. 'Authorization' => ['<replace_with_a_secret_token>']
    8. }
    9. }
    10. ]

    注意:<replace_with_a_secret_token>替换为以字母开头的区分大小写的字母数字字符串. 您可以使用< /dev/urandom tr -dc _A-Zaz-0-9 | head -c 32 | sed "s/^[0-9]*//"; echo生成一个 < /dev/urandom tr -dc _A-Zaz-0-9 | head -c 32 | sed "s/^[0-9]*//"; echo注意:如果使用外部注册表(而不是与 GitLab 集成的注册表),则必须将这些设置自己添加到其配置中. 在这种情况下,您还必须在/etc/gitlab/gitlab.rb文件的registry.notification_secret部分中指定通知密钥.注意:如果使用 GitLab HA,则还必须在/etc/gitlab/gitlab.rb文件的registry.notification_secret部分中为每个 Web 节点指定通知密钥.

  3. 重新配置节点以使更改生效:

Make sure you have Container Registry set up and working on the secondary node before following the next steps.

因为我们需要允许辅助节点与节点容器注册表安全通信,所以我们需要为所有节点使用单个密钥对. 辅助节点将使用此密钥来生成短暂的 JWT,该 JWT 具有仅拉功能,可以访问节点 Container Registry.

  1. SSH 进入辅助节点并以root用户身份登录:

    1. sudo -i
  2. /var/opt/gitlab/gitlab-rails/etc/gitlab-registry.key节点复制到辅助节点.

  3. Edit /etc/gitlab/gitlab.rb:

  4. 重新配置辅助节点以使更改生效: