Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

4.2. 容器镜像准备命令用法

本节概述如何使用 openstack overcloud 容器镜像准备 命令,包括关于该命令的各种选项的概念信息。

为 Overcloud 生成容器镜像环境文件

openstack overcloud 容器镜像准备 命令的一个主要用途是创建含有 overcloud 使用的镜像列表的环境文件。您可以使用 overcloud 部署命令包括此文件,如 openstack overcloud deployopenstack overcloud 容器镜像准备命令将以下选项用于此功能:

--output-env-file
定义生成的环境文件名称。

以下片段是该文件的内容示例:

parameter_defaults:
  DockerAodhApiImage: registry.redhat.io/rhosp13/openstack-aodh-api:13.0-34
  DockerAodhConfigImage: registry.redhat.io/rhosp13/openstack-aodh-api:13.0-34
...

环境文件还包含设置为 undercloud registry 的 IP 地址和端口的 DockerInsecureRegistryAddress 参数。此参数将 overcloud 节点配置为在没有 SSL/TLS 认证的情况下从 undercloud registry 访问镜像。

为导入方法生成容器镜像列表

如果要将 OpenStack Platform 容器镜像导入到其他 registry 源,您可以生成镜像列表。列表语法主要用于将容器镜像导入到 undercloud 上的容器注册表,但您可以修改此列表的格式,以适应其他导入方法,如 Red Hat Satellite 6。

openstack overcloud 容器镜像准备命令将以下选项用于此功能:

--output-images-file
定义导入列表生成的文件名。

以下是此文件的内容示例:

container_images:
- imagename: registry.redhat.io/rhosp13/openstack-aodh-api:13.0-34
- imagename: registry.redhat.io/rhosp13/openstack-aodh-evaluator:13.0-34
...

为容器镜像设置命名空间

--output-env-file--output-images-file 选项都需要一个命名空间来生成生成的镜像位置。openstack overcloud 容器镜像准备命令使用以下选项来设置容器镜像的源位置,以拉取:

--namespace
定义容器镜像的命名空间。这通常是包含目录的主机名或 IP 地址。
--prefix
定义在镜像名称前添加的前缀。

因此,director 使用以下格式生成镜像名称:

  • [NAMESPACE]/[PREFIX][IMAGE NAME]

设置容器镜像标签

使用 --tag--tag-from-label 选项为每个容器镜像设置标签。

--tag
为来自源的所有镜像设置特定标签。如果您只使用这个选项,director 会使用该标签拉取所有容器镜像。但是,如果您将此选项与 --tag-from-label 结合使用,director 将 --tag 用作源镜像来根据标签识别特定的版本标签。默认将 --tag 选项设置为 latest
--tag-from-label
使用指定容器镜像标签的值来发现并拉取每个镜像的 versioned 标签。director 会检查使用您为 --tag 设置的值标记的每个容器镜像,然后使用容器镜像标签 来构建新标签,director 从 registry 拉取。例如,如果您设置了 --tag-from-label {version}-{release},director 会使用 versionrelease 标签来构造新标签。对于一个容器,版本 可能被设置为 13.0release 可能会设置为 34,这会导致标签 13.0-34
重要

Red Hat Container Registry 使用特定的版本格式来标记所有 Red Hat OpenStack Platform 容器镜像。此版本格式为 {version}-{release},每个容器镜像都作为容器元数据中的标签存储。这个版本格式有助于从一个 {release} 更新至下一个版本。因此,在运行 openstack overcloud 容器镜像准备 命令时,必须始终使用 --tag-from-label {version}-{release}。不要自行使用 --tag 来拉取容器镜像。例如,使用 --tag latest 本身会在执行更新时导致问题,因为 director 需要更改标签来更新容器镜像。