2.5.4. 覆盖 Registry 配置
您可以使用自己的自定义配置覆盖集成 registry 的默认配置,默认覆盖正在运行的 registry 容器中的 /config.yml 中的默认配置。
此文件中的上游配置选项也可使用环境变量覆盖。middleware 部分是一个例外,因为只有几个选项可以使用环境变量覆盖。了解如何覆盖特定的配置选项。
要启用对 registry 配置文件的管理,并使用 ConfigMap
部署更新的配置:
- 部署 registry。
根据需要在本地编辑 registry 配置文件。registry 中部署的初始 YAML 文件如下所示:查看支持的选项。
registry 配置文件
version: 0.1 log: level: debug http: addr: :5000 storage: cache: blobdescriptor: inmemory filesystem: rootdirectory: /registry delete: enabled: true auth: openshift: realm: openshift middleware: registry: - name: openshift repository: - name: openshift options: acceptschema2: true pullthrough: true enforcequota: false projectcachettl: 1m blobrepositorycachettl: 10m storage: - name: openshift openshift: version: 1.0 metrics: enabled: false secret: <secret>
创建一个
ConfigMap
,包含此目录中每个文件的内容:$ oc create configmap registry-config \ --from-file=</path/to/custom/registry/config.yml>/
将 registry-config ConfigMap 作为卷添加到 registry 的部署配置中,以在 /etc/docker/registry/ 中挂载自定义配置文件:
$ oc set volume dc/docker-registry --add --type=configmap \ --configmap-name=registry-config -m /etc/docker/registry/
通过在 registry 的部署配置中添加以下环境变量来更新 registry,以引用上一步中的配置路径:
$ oc set env dc/docker-registry \ REGISTRY_CONFIGURATION_PATH=/etc/docker/registry/config.yml
这可以作为迭代过程执行,从而实现所需的配置。例如,在故障排除期间,可临时更新配置以将其置于 debug 模式。
更新现有配置:
此流程将覆盖当前部署的 registry 配置。
- 编辑本地 registry 配置文件 config.yml。
删除 registry-config configmap:
$ oc delete configmap registry-config
重新创建 configmap 以引用更新的配置文件:
$ oc create configmap registry-config\ --from-file=</path/to/custom/registry/config.yml>/
重新部署 registry 以读取更新的配置:
$ oc rollout latest docker-registry
在源代码控制存储库中维护配置文件。