4.5. 使用 undercloud 作为本地 registry
您可以在 undercloud 上配置本地 registry,以存储 overcloud 容器镜像。
您可以使用 director 从 registry.redhat.io 拉取每个镜像,并将每个镜像推送到 undercloud 上运行的 docker-distribution registry。当使用 director 创建 overcloud 时,在 overcloud 创建过程中,节点会从 undercloud docker-distribution registry 中拉取相关镜像。
这会为您的内部网络保留容器镜像的网络流量,这并不会整合外部网络连接,并可加快部署过程。
流程
查找本地 undercloud registry 的地址。地址使用以下模式:
<REGISTRY_IP_ADDRESS>:8787
<REGISTRY_IP_ADDRESS>:8787Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 undercloud 的 IP 地址,之前使用
undercloud.conf文件中的local_ip参数进行设置。对于下列命令,该地址被假定为192.168.24.1:8787。登录到
registry.redhat.io:(undercloud) $ docker login registry.redhat.io --username $RH_USER --password $RH_PASSWD
(undercloud) $ docker login registry.redhat.io --username $RH_USER --password $RH_PASSWDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建模板,将镜像上传到本地 registry,以及环境文件以引用这些镜像:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
-e选项包括可选服务的任何环境文件。 -
使用
-r选项包括自定义角色文件。 -
如果使用 Ceph Storage,包括额外的参数来定义 Ceph Storage 容器镜像位置:--
set ceph_namespace ,,--set ceph_image--set ceph_tag.
-
使用
验证是否已创建以下两个文件:
-
local_registry_images.yaml,其中包含来自远程源的容器镜像信息。使用此文件将 Red Hat Container Registry (registry.redhat.io)中的镜像拉取到 undercloud。 -
overcloud_images.yaml,其中包含 undercloud 上的最终镜像位置。您的部署会包含这个文件。
-
从远程 registry 拉取容器镜像并将其推送到 undercloud registry:
(undercloud) $ openstack overcloud container image upload \ --config-file /home/stack/local_registry_images.yaml \ --verbose
(undercloud) $ openstack overcloud container image upload \ --config-file /home/stack/local_registry_images.yaml \ --verboseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 拉取所需的镜像可能需要一些时间,具体取决于您的网络和 undercloud 磁盘的速度。
注意容器镜像大约消耗 10 GB 磁盘空间。
该镜像现在存储在 undercloud 的
docker-distribution注册表中。要查看 undercloud 的docker-distributionregistry 中的镜像列表,请运行以下命令:(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog | jq .repositories[]
(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog | jq .repositories[]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意本身中的
_catalog资源仅显示 100 个镜像。要显示更多镜像,请使用?n=<interger> 查询字符串及_catalog资源来显示更多镜像数量:(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog?n=150 | jq .repositories[]
(undercloud) $ curl http://192.168.24.1:8787/v2/_catalog?n=150 | jq .repositories[]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要查看特定镜像的标签列表,请使用
skopeo命令:(undercloud) $ curl -s http://192.168.24.1:8787/v2/rhosp13/openstack-keystone/tags/list | jq .tags
(undercloud) $ curl -s http://192.168.24.1:8787/v2/rhosp13/openstack-keystone/tags/list | jq .tagsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证标记的镜像,使用
skopeo命令:(undercloud) $ skopeo inspect --tls-verify=false docker://192.168.24.1:8787/rhosp13/openstack-keystone:13.0-44
(undercloud) $ skopeo inspect --tls-verify=false docker://192.168.24.1:8787/rhosp13/openstack-keystone:13.0-44Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注册表配置已就绪。