2.2.5. 配置容器镜像 registry 设置
用于定义 OpenShift Container Platform 用来获取容器镜像的 registry 的设置默认包括在 /etc/containers/registries.conf
文件中。在该文件中,您可以将 registry 设置为不需要身份验证(不安全),指向镜像的 registry,或设置搜索哪些 registry 以获取非全限定容器镜像请求。
不直接更改 registry.conf
,您可以将配置文件放到 /etc/containers/registries.conf.d
目录中,然后自动附加到系统的现有 registry.conf
设置中。
此流程描述了如何创建 registry.d
文件(/etc/containers/registries/99-worker-unqualified-search-registries.conf
),该文件会添加 quay.io
作为非全限定的搜索 registry(在 OpenShift Container Platform 试图拉取不包括 registry 名称的镜像名称时进行搜索)。它包含您可以检查的 base64 编码内容,如下所示:
$ echo dW5xdWFsaWZpZWQtc2VhcmNoLXJlZ2lzdHJpZXMgPSBbJ3JlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tJywgJ2RvY2tlci5pbycsICdxdWF5LmlvJ10K | base64 -d unqualified-search-registries = ['registry.access.redhat.com', 'docker.io', 'quay.io']
如需 registries.conf
和 registries.d
目录文件的格式,请参阅 containers-registries.conf
man page。
先决条件
- 有一个正在运行的 OpenShift Container Platform 集群(版本 4.4 或更高版本)。
- 以具有管理特权的用户身份登录集群。
流程
创建一个 YAML 文件(
myregistry.yaml
)来保存/etc/containers/registries.conf.d/99-worker-unqualified-search-registries.conf
文件的内容,包括该文件的 base64 内容。例如:$ cat > /tmp/myregistry.yaml <<EOF apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: 99-worker-unqualified-search-registries spec: config: ignition: version: 3.1.0 storage: files: - contents: source: data:text/plain;charset=utf-8;base64,dW5xdWFsaWZpZWQtc2VhcmNoLXJlZ2lzdHJpZXMgPSBbJ3JlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tJywgJ2RvY2tlci5pbycsICdxdWF5LmlvJ10K filesystem: root mode: 0644 path: /etc/containers/registries.conf.d/99-worker-unqualified-search-registries.conf EOF
将机器配置应用到池:
$ oc apply -f /tmp/myregistry.yaml
检查是否应用了新的机器配置,并且节点是否处于降级状态。它可能需要几分钟时间。worker 池将显示更新进行中,每台机器都成功应用了新机器配置:
$ oc get machineconfigpool
输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-35 True False False 3 3 3 0 34m worker rendered-worker-d8 False True False 3 1 1 0 34m
要检查是否应用了更改,您可以登录到 worker 节点:
$ oc get node | grep worker
输出示例
ip-10-0-0-1.us-east-2.compute.internal Ready worker 39m v0.0.0-master+$Format:%h$
$ oc debug node/ip-10-0-0-1.us-east-2.compute.internal
输出示例
Starting pod/ip-10-0-141-142us-east-2computeinternal-debug ... ...
sh-4.2# chroot /host sh-4.4# cat /etc/containers/registries.conf.d/99-worker-unqualified-search-registries.conf unqualified-search-registries = ['registry.access.redhat.com', 'docker.io', 'quay.io'] sh-4.4# exit