搜索

2.5. 使用 oc-mirror 插件 v2 为断开连接的安装 mirror 镜像

download PDF

如果从私有 registry 中的镜像 OpenShift Container Platform 容器镜像安装集群,则可以在没有直接互联网连接的受限网络中运行集群。每当集群运行时,此 registry 必须正在运行。

正如您可以使用 oc-mirror OpenShift CLI (oc)插件一样,您也可以使用 oc-mirror 插件 v2 在完全或部分断开连接的环境中将镜像镜像到镜像 registry。要从官方红帽 registry 下载所需的镜像,您必须从具有互联网连接的系统运行 oc-mirror 插件 v2。

重要

oc-mirror 插件 v2 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

2.5.1. 先决条件

  • 如果您没有容器镜像 registry 的现有解决方案,OpenShift Container Platform 订阅者会收到一个 mirror registry for Red Hat OpenShift。此镜像 registry 包含在您的订阅中,并充当小型容器 registry。您可以使用此 registry 为断开连接的安装镜像 OpenShift Container Platform 所需的容器镜像。
  • 置备的集群中的每个机器都必须有权访问镜像 registry。如果 registry 无法访问,安装、更新或常规操作等任务(如工作负载重新定位)可能会失败。镜像 registry 必须以高可用性的方式运行,确保其可用性与 OpenShift Container Platform 集群的生产环境可用性一致。

高级别工作流

以下步骤概述了如何使用 oc-mirror 插件 v2 将镜像镜像到镜像 registry 的高级别工作流:

  1. 创建镜像设置配置文件。
  2. 使用以下工作流之一将镜像设置为目标镜像 registry:

    • 将镜像直接设置为目标镜像 registry (mirror 到 mirror)。

      • 镜像设置为磁盘(Mirror-to-Disk),将 tar 文件传送到目标环境,然后将镜像设置为目标镜像 registry (Disk-to-Mirror)。
  3. 配置集群以使用 oc-mirror 插件 v2 生成的资源。
  4. 根据需要重复这些步骤以更新目标镜像 registry。

2.5.2. 关于 oc-mirror 插件 v2

oc-mirror OpenShift CLI (oc) 插件是一个单一工具,可将所有所需的 OpenShift Container Platform 内容和其他镜像 (mirror)镜像到您的镜像 registry。

要使用 oc-mirror 的新技术预览版本,请在 oc-mirror 插件 v2 命令行中添加--v2 标志。

oc-mirror 插件 v2 具有以下功能:

  • 验证镜像设置配置中指定的完整镜像集是否已镜像到已镜像的 registry,无论镜像之前是否被镜像(mirror)。
  • 使用缓存系统而不是元数据。
  • 通过将新镜像合并到存档中来维护最小归档大小。
  • 使用通过镜像日期选择的内容生成镜像存档。
  • 可以为完整镜像集生成 ImageDigestMirrorSet (IDMS)、ImageTagMirrorSet (ITMS) 而不是 ImageContentSourcePolicy (ICSP),而不是只针对增量更改。
  • 根据捆绑包名称保存过滤器 Operator 版本。
  • 不执行自动修剪。V2 现在有一个 Delete 功能,它授予用户对删除镜像的更多控制。
  • 引入了对 registry.conf 的支持。此更改有助于在使用相同的缓存时镜像到多个 enclaves。

2.5.2.1. oc-mirror 插件 v2 兼容性和支持

OpenShift Container Platform 支持 oc-mirror 插件 v2。

注意

aarch64,ppc64le, 和 s390x 架构上,oc-mirror 插件 v2 只支持 OpenShift Container Platform 版本 4.14 及更新的版本。

使用 oc-mirror 插件 v2 的最新可用版本,无论您需要镜像的 OpenShift Container Platform 版本是什么。

2.5.3. 准备您的镜像主机

要将 oc-mirror 插件 v2 用于镜像镜像,您需要安装插件并使用容器镜像凭证创建文件,使您能够从红帽镜像到您的镜像。

2.5.3.1. 安装 oc-mirror OpenShift CLI 插件

安装 oc-mirror OpenShift CLI 插件以在断开连接的环境中管理镜像集。

先决条件

  • 已安装 OpenShift CLI(oc)。如果您在完全断开连接的环境中镜像镜像集,请确保以下内容:

    • 您已在可访问互联网的主机上安装了 oc-mirror 插件。
    • 在断开连接的环境中的主机可以访问目标镜像 registry。
  • 您已在使用 oc-mirror 的操作系统中,将 umask 参数设置为 0022
  • 您已为您要使用的 RHEL 版本安装了正确的二进制文件。

流程

  1. 下载 oc-mirror CLI 插件。

    1. 导航到 OpenShift Cluster ManagerDownloads 页面。
    2. OpenShift disconnected 安装工具部分下,点 Download for OpenShift Client(oc)mirror 插件 并保存该文件。
  2. 解压归档:

    $ tar xvzf oc-mirror.tar.gz
  3. 如有必要,将插件文件更新为可执行。

    $ chmod +x oc-mirror
    注意

    不要重命名 oc-mirror 文件。

  4. 通过将文件放在 PATH 中,例如 /usr/local/bin,安装 oc-mirror CLI 插件:

    $ sudo mv oc-mirror /usr/local/bin/.

验证

  • 运行以下命令,验证 oc-mirror v2 的插件是否已成功安装:

    $ oc mirror --v2 --help

2.5.3.2. 配置允许对容器镜像进行镜像的凭证

创建容器镜像 registry 凭证文件,可让您将镜像从红帽 mirror 到您的镜像。

警告

安装集群时不要使用此镜像 registry 凭据文件作为 pull secret。如果在安装集群时提供此文件,集群中的所有机器都将具有镜像 registry 的写入权限。

警告

此过程需要您可以对镜像 registry 上的容器镜像 registry 进行写操作,并将凭证添加到 registry pull secret。

先决条件

  • 您已将镜像 registry 配置为在断开连接的环境中使用。
  • 您在镜像 registry 中标识了镜像仓库的位置,以将容器镜像镜像(mirror)到这个位置。
  • 您置备了一个镜像 registry 帐户,允许将镜像上传到该镜像仓库。

流程

在安装主机上完成以下步骤:

  1. 从 Red Hat OpenShift Cluster Manager 下载 registry.redhat.io pull secret
  2. 以 JSON 格式创建您的 pull secret 副本:

    $ cat ./pull-secret | jq . > <path>/<pull_secret_file_in_json> 1
    1
    指定到存储 pull secret 的文件夹的路径,以及您创建的 JSON 文件的名称。

    该文件类似于以下示例:

    {
      "auths": {
        "cloud.openshift.com": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "quay.io": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "registry.connect.redhat.com": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        },
        "registry.redhat.io": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        }
      }
    }
  3. 将文件保存为 $XDG_RUNTIME_DIR/containers/auth.json
  4. 为您的镜像 registry 生成 base64 编码的用户名和密码或令牌:

    $ echo -n '<user_name>:<password>' | base64 -w0 1
    BGVtbYk3ZHAtqXs=
    1
    通过 <user_name><password> 指定 registry 的用户名和密码。
  5. 编辑 JSON 文件并添加描述 registry 的部分:

      "auths": {
        "<mirror_registry>": { 1
          "auth": "<credentials>", 2
          "email": "you@example.com"
        }
      },
    1
    指定 registry 域名,以及您的镜像 registry 用来提供内容的可选端口。例如:registry.example.comregistry.example.com:8443
    2
    指定镜像 registry 的 base64 编码用户名和密码。

    该文件类似于以下示例:

    {
      "auths": {
        "registry.example.com": {
          "auth": "BGVtbYk3ZHAtqXs=",
          "email": "you@example.com"
        },
        "cloud.openshift.com": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "quay.io": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "registry.connect.redhat.com": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        },
        "registry.redhat.io": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        }
      }
    }

2.5.4. 将镜像集镜像(mirror)到镜像 registry

将镜像集镜像到镜像 registry 可确保所需的镜像在安全且受控的环境中可用,从而促进平稳部署、更新和维护任务。

2.5.4.1. 构建镜像设置配置

oc-mirror 插件 v2 使用镜像设置配置作为输入文件,以确定镜像镜像所需的镜像。

ImageSetConfiguration 输入文件示例

kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v2alpha1
mirror:
  platform:
    channels:
    - name: stable-4.13
      minVersion: 4.13.10
      maxVersion: 4.13.10
    graph: true
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
      packages:
       - name: aws-load-balancer-operator
       - name: 3scale-operator
       - name: node-observability-operator
  additionalImages:
   - name: registry.redhat.io/ubi8/ubi:latest
   - name: registry.redhat.io/ubi9/ubi@sha256:20f695d2a91352d4eaa25107535126727b5945bff38ed36a3e59590f495046f0

2.5.4.2. 在部分断开连接的环境中镜像设置的镜像

您可以在带有受限互联网访问的环境中使用 oc-mirror 插件 v2 将镜像集镜像到 registry。

先决条件

  • 在运行 oc-mirror 插件 v2 的环境中,您可以访问互联网和镜像 registry。

流程

  • 运行以下命令,将指定镜像设置配置中的镜像镜像到指定的 registry:

    $ oc mirror -c isc.yaml --workspace file://<file_path> docker://<mirror_registry_url> --v2 1
    1
    指定存储镜像并从中删除镜像的镜像 registry 的 URL 或地址。

验证

  1. 进入到 working-dir 中的 cluster-resources 目录,它在 <file_path> 目录中生成。
  2. 验证 ImageDigestMirrorSetImageTagMirrorSetCatalogSource 资源是否存在 YAML 文件。

后续步骤

  • 配置集群以使用 oc-mirror 插件 v2 生成的资源。

2.5.4.3. 镜像在完全断开连接的环境中设置的镜像

您可以在 OpenShift Container Platform 集群无法访问互联网的完全断开连接的环境中镜像镜像集。

  1. 镜像到磁盘 :准备包含为镜像设置的镜像的存档。需要访问互联网。
  2. 手动步骤 :将存档传输到断开连接的镜像 registry 的网络。
  3. 磁盘到镜像: 要将存档中的镜像集镜像到目标断开连接的 registry,请从可访问镜像 registry 的环境运行 oc-mirror 插件 v2。
2.5.4.3.1. 从镜像镜像到磁盘

您可以使用 oc-mirror 插件 v2 生成镜像集,并将内容保存到磁盘。然后,您可以将生成的镜像集传送到断开连接的环境中,并镜像到目标 registry。

oc-mirror 插件 v2 从镜像设置配置中指定的源中检索容器镜像,并将它们打包到本地目录中的 tar 存档中。

流程

  • 运行以下命令,将指定镜像集配置中的镜像镜像到磁盘:

    $ oc mirror -c isc.yaml file://<file_path> --v2 1
    1
    添加所需的文件路径。

验证

  1. 进入生成的 <file_path> 目录。
  2. 验证存档文件是否已生成。

后续步骤

  • 配置集群以使用 oc-mirror 插件 v2 生成的资源。
2.5.4.3.2. 从磁盘镜像到镜像

您可以使用 oc-mirror 插件 v2 将磁盘中的镜像集镜像到目标镜像 registry。

oc-mirror 插件 v2 从本地磁盘检索容器镜像并将其传送到指定的镜像 registry。

流程

  • 运行以下命令,处理磁盘上的镜像集文件,并将内容镜像到目标镜像 registry:

    $ oc mirror -c isc.yaml --from file://<file_path> docker://<mirror_registry_url> --v2 1
    1
    指定存储镜像并从中删除镜像的镜像 registry 的 URL 或地址。

验证

  1. 进入到 working-dir 中的 cluster-resources 目录,它在 <file_path> 目录中生成。
  2. 验证 ImageDigestMirrorSetImageTagMirrorSetCatalogSource 资源是否存在 YAML 文件。

后续步骤

  • 配置集群以使用 oc-mirror 插件 v2 生成的资源。

2.5.5. 其他资源

2.5.6. 关于 v2 生成的自定义资源

使用 oc-mirror 插件 v2 时,如果至少找到一个标签,则默认生成 ImageDigestMirrorSet (IDMS) 和 ImageTagMirrorSet (ITMS)。这些集合包含由版本、Operator 目录和其他镜像中的摘要或标签引用的镜像的镜像。

ImageDigestMirrorSet (IDMS) 将镜像 registry 链接到源 registry,并使用摘要规格转发镜像拉取请求。但是,ImagetagMirrorSet (ITMS) 资源使用镜像标签重定向镜像拉取请求。

Operator Lifecycle Manager (OLM) 使用 CatalogSource 资源来检索有关镜像 registry 中可用 Operator 的信息。

OSUS 服务使用 UpdateService 资源为断开连接的环境提供 Cincinnati 图。

2.5.6.1. 配置集群以使用 oc-mirror 插件 v2 生成的资源

将镜像设置为镜像 registry 后,您必须将生成的 ImageDigestMirrorSet (IDMS)、ImageTagMirrorSet (ITMS)、CatalogSourceUpdateService 应用到集群。

重要

在 oc-mirror 插件 v2 中,IDMS 和 ITMS 文件涵盖了整个镜像集,这与 oc-mirror 插件 v1 中的 ICSP 文件不同。因此,即使您仅在增量镜像过程中添加新镜像,IDMS 和 ITMS 文件还包含集合的所有镜像。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

  • 运行以下命令,将结果目录中的 YAML 文件应用到集群:

    $ oc apply -f <path_to_oc-mirror_workspace>/working-dir/cluster-resources

验证

  1. 运行以下命令验证 ImageDigestMirrorSet 资源是否已成功安装:

    $ oc get imagedigestmirrorset
  2. 运行以下命令验证 ImageTagMirrorSet 资源是否已成功安装:

    $ oc get imagetagmirrorset
  3. 运行以下命令验证 CatalogSource 资源是否已成功安装:

    $ oc get catalogsource -n openshift-marketplace

2.5.7. 在断开连接的环境中删除镜像

在使用 oc-mirror 插件 v2 之前,您必须删除之前部署的镜像。oc-mirror 插件 v2 不再执行自动修剪。

在使用 oc-mirror 插件 v2 时,您必须创建 DeleteImageSetConfiguration 文件来删除镜像配置。这可防止在使用 ImageSetConfig.yaml 更改时意外删除必要的或部署的镜像。

在以下示例中,DeleteImageSetConfiguration 会删除以下内容:

  • OpenShift Container Platform release 4.13.3 的所有镜像。
  • 目录镜像 redhat-operator-index v4.12
  • aws-load-balancer-operator v0.0.1 捆绑包及其所有相关镜像。
  • 相应的摘要引用的额外镜像 ubiubi-minimal

示例: DeleteImageSetConfig

apiVersion: mirror.openshift.io/v2alpha1
kind: DeleteImageSetConfiguration
delete:
  platform:
    channels:
      - name: stable-4.13
        minVersion: 4.13.3
        maxVersion: 4.13.3
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.12
      packages:
      - name: aws-load-balancer-operator
         minVersion: 0.0.1
         maxVersion: 0.0.1
  additionalImages:
    - name: registry.redhat.io/ubi8/ubi@sha256:bce7e9f69fb7d4533447232478fd825811c760288f87a35699f9c8f030f2c1a6
    - name: registry.redhat.io/ubi8/ubi-minimal@sha256:8bedbe742f140108897fb3532068e8316900d9814f399d676ac78b46e740e34e

重要

考虑使用 mirror-to-disk 和 disk-to-mirror 工作流来减少镜像问题。

在镜像删除工作流中,oc-mirror 插件 v2 只删除镜像的清单,这不会减少 registry 中占用的存储。

要从不必要的镜像(如带有删除的清单)中释放存储空间,您必须在容器 registry 上启用垃圾收集器。启用垃圾收集器后,registry 将删除不再引用任何清单的镜像 Blob,从而减少之前由已删除 Blob 占用的存储。启用垃圾收集器会因容器 registry 而异。

重要

要在删除镜像时跳过删除 Operator 目录镜像,您必须在 DeleteImageSetConfiguration 文件中的 Operator 目录镜像下列出特定的 Operator。这样可确保只有指定的 Operator 被删除,而不是目录镜像。

如果只指定 Operator 目录镜像,则该目录中的所有 Operator 以及目录镜像本身都将被删除。

2.5.7.1. 从断开连接的环境中删除镜像

要使用 oc-mirror 插件 v2 从断开连接的环境中删除镜像,请按照以下步骤操作。

流程

  1. 创建删除之前镜像的 YAML 文件:

    $ oc mirror delete --config delete-image-set-config.yaml --workspace file://<previously_mirrored_work_folder> --v2 --generate docker://<remote_registry>

    其中:

    • <previously_mirrored_work_folder> :使用镜像之前在镜像过程中镜像或存储的目录。
    • <remote_registry> : 插入从中删除镜像的远程容器 registry 的 URL 或地址。
  2. 进入创建的 <previously_mirrored_work_folder>/delete directory
  3. 验证 delete-images.yaml 文件是否已生成。
  4. 手工确保文件中列出的每个镜像不再被集群需要,可以安全地从 registry 中删除。
  5. 在生成 delete YAML 文件后,从远程 registry 中删除镜像:

    $ oc mirror delete --v2 --delete-yaml-file <previously_mirrored_work_folder>/delete/delete-images.yaml docker:/ <remote_registry>

    其中:

    • <previously_mirrored_work_folder>:指定之前镜像的工作文件夹。

      重要

      使用 mirror-to-mirror 时,镜像不会在本地缓存,因此您无法从本地缓存中删除镜像。

2.5.8. 验证您选择的镜像以进行镜像

您可以使用 oc-mirror 插件 v2 执行不实际镜像任何镜像的测试运行(dry run)。这可让您查看要镜像的镜像列表。您也可以在早期使用空运行来捕获与镜像设置配置的任何错误。在镜像到磁盘工作流上运行空运行时,oc-mirror 插件 v2 会检查镜像集中的所有镜像是否在其缓存中可用。missing.txt 文件中列出了任何缺少的镜像。在镜像前执行空运行时,missing.txtmapping.txt 文件都包含相同的镜像列表。

2.5.8.1. 为 oc-mirror 插件 v2 执行空运行

通过在不镜像的情况下执行空运行来验证您的镜像设置。这样可确保您的设置正确,并防止意外更改。

流程

  • 要执行测试运行,请运行 oc mirror 命令,并在命令中使用 --dry-run 参数:

    $ oc mirror -c <image_set_config_yaml> --from file://<oc_mirror_workspace_path> docker://<mirror_registry_url> --dry-run --v2

    其中:

    • <image_set_config_yaml> :使用您刚才创建的镜像设置配置文件。
    • <oc_mirror_workspace_path>:插入 workspace 路径的地址。
    • <mirror_registry_url> : 插入从中删除镜像的远程容器 registry 的 URL 或地址。

      输出示例

      $ oc mirror --config /tmp/isc_dryrun.yaml file://<oc_mirror_workspace_path> --dry-run --v2
      
      [INFO]   : :warning:  --v2 flag identified, flow redirected to the oc-mirror v2 version. This is Tech Preview, it is still under development and it is not production ready.
      [INFO]   : :wave: Hello, welcome to oc-mirror
      [INFO]   : :gear:  setting up the environment for you...
      [INFO]   : :twisted_rightwards_arrows: workflow mode: mirrorToDisk
      [INFO]   : :sleuth_or_spy:  going to discover the necessary images...
      [INFO]   : :mag: collecting release images...
      [INFO]   : :mag: collecting operator images...
      [INFO]   : :mag: collecting additional images...
      [WARN]   : :warning:  54/54 images necessary for mirroring are not available in the cache.
      [WARN]   : List of missing images in : CLID-19/working-dir/dry-run/missing.txt.
      please re-run the mirror to disk process
      [INFO]   : :page_facing_up: list of all images for mirroring in : CLID-19/working-dir/dry-run/mapping.txt
      [INFO]   : mirror time     : 9.641091076s
      [INFO]   : :wave: Goodbye, thank you for using oc-mirror

验证

  1. 进入生成的工作区目录:

    $ cd <oc_mirror_workspace_path>
  2. 检查生成的 mapping.txtmissing.txt 文件。这些文件包含将要镜像的所有镜像的列表。

2.5.8.2. oc-mirror 插件 v2 错误故障排除

oc-mirror 插件 v2 现在会在单独的文件中记录所有镜像镜像错误,从而更轻松地跟踪和诊断失败。

重要

当镜像发行版本或发行组件镜像时出现错误时,它们至关重要。这会立即停止镜像过程。

镜像 Operator、Operator 相关镜像或其他镜像的错误不会停止镜像过程。镜像功能将继续,oc-mirror 插件 v2 日志会更新每 8 个镜像。

当镜像无法镜像,且该镜像作为一个或多个 Operator 捆绑包的一部分被镜像(mirror)时,oc-mirror 插件 v2 会通知用户 Operator 不完整,从而对受错误影响的 Operator 捆绑包提供清晰性。

流程

  1. 检查与服务器相关的问题:

    错误示例

    [ERROR]  : [Worker] error mirroring image localhost:55000/openshift/graph-image:latest error: copying image 1/4 from manifest list: trying to reuse blob sha256:edab65b863aead24e3ed77cea194b6562143049a9307cd48f86b542db9eecb6e at destination: pinging container registry localhost:5000: Get "https://localhost:5000/v2/": http: server gave HTTP response to HTTPS client

    1. 在 oc-mirror 插件 v2 输出目录中,打开 working-dir/logs 文件夹中的 mirroring_error_date_time.log 文件。
    2. 查找通常表示服务器端问题的错误消息,如 HTTP 500 错误、到期令牌或超时。
    3. 如果问题仍然存在,请重试镜像过程或联系支持。
  2. 检查 Operator 的不完整镜像:

    错误示例

    error mirroring image docker://registry.redhat.io/3scale-amp2/zync-rhel9@sha256:8bb6b31e108d67476cc62622f20ff8db34efae5d58014de9502336fcc479d86d (Operator bundles: [3scale-operator.v0.11.12] - Operators: [3scale-operator]) error: initializing source docker://localhost:55000/3scale-amp2/zync-rhel9:8bb6b31e108d67476cc62622f20ff8db34efae5d58014de9502336fcc479d86d: reading manifest 8bb6b31e108d67476cc62622f20ff8db34efae5d58014de9502336fcc479d86d in localhost:55000/3scale-amp2/zync-rhel9: manifest unknown
    error mirroring image docker://registry.redhat.io/3scale-amp2/3scale-rhel7-operator-metadata@sha256:de0a70d1263a6a596d28bf376158056631afd0b6159865008a7263a8e9bf0c7d error: skipping operator bundle docker://registry.redhat.io/3scale-amp2/3scale-rhel7-operator-metadata@sha256:de0a70d1263a6a596d28bf376158056631afd0b6159865008a7263a8e9bf0c7d because one of its related images failed to mirror
    error mirroring image docker://registry.redhat.io/3scale-amp2/system-rhel7@sha256:fe77272021867cc6b6d5d0c9bd06c99d4024ad53f1ab94ec0ab69d0fda74588e (Operator bundles: [3scale-operator.v0.11.12] - Operators: [3scale-operator]) error: initializing source docker://localhost:55000/3scale-amp2/system-rhel7:fe77272021867cc6b6d5d0c9bd06c99d4024ad53f1ab94ec0ab69d0fda74588e: reading manifest fe77272021867cc6b6d5d0c9bd06c99d4024ad53f1ab94ec0ab69d0fda74588e in localhost:55000/3scale-amp2/system-rhel7: manifest unknown

    1. 检查控制台或日志文件中的警告,指出哪些 Operator 不完整。

      如果 Operator 标记不完整,与该 Operator 相关的镜像可能会无法镜像(mirror)。

    2. 手动镜像缺少的镜像或重试镜像过程。
  3. 检查与生成的集群资源相关的错误。即使某些镜像无法镜像,oc-mirror v2 仍会为成功镜像的镜像生成集群资源,如 IDMS.yamlITMS.yaml 文件。

    1. 检查生成的文件的输出目录。
    2. 如果为特定镜像缺少这些文件,请确保在镜像过程中不会发生这些镜像的关键错误。

按照以下步骤,您可以更好地诊断问题并确保更顺畅的镜像。

2.5.9. enclave 支持的好处

enclave 支持限制内部访问网络的特定部分。与一个 demilitarized zone (DMZ)网络不同,它允许通过防火墙界限和出站流量访问,enclaves 不跨防火墙界限。

重要

enclave Support 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

新的 enclave 支持功能适用于在至少一个中间断开连接的网络中保护的多个 enclave 时需要镜像(mirror)。

enclave 支持有以下优点:

  • 您可以镜像多个 enclaves 的内容,并将其集中到一个内部 registry 中。因为有些客户希望在镜像的内容上运行安全检查,所以此设置他们可以一次性运行这些检查。然后,在镜像到下游 enclaves 之前,内容会被检查。
  • 您可以直接从集中式内部 registry 中镜像内容,而无需为每个 enclave 重启镜像过程。
  • 您可以最小化网络阶段的数据传输,以确保 Blob 或镜像仅从一个阶段传输到另一个阶段。

2.5.9.1. enclave 镜像工作流

enclave Support

上一个镜像概述了在不同环境中使用 oc-mirror 插件的流程,包括带有和没有互联网连接的环境。

带有互联网连接的环境

  1. 用户执行 oc-mirror 插件 v2,将在线 registry 的内容镜像到本地磁盘目录。
  2. 镜像内容保存到磁盘中,以转移到离线环境中。

断开连接的企业环境(非互联网 ):

  • 流 1:

    • 用户运行 oc-mirror 插件 v2,将从磁盘目录中镜像的内容(从在线环境传输到 registry)中。
  • 流 2:

    1. 更新 registry.conf 文件后,用户执行 oc-mirror 插件 v2 以将内容从 enterprise-registry.in registry 镜像到 enclave 环境。
    2. 内容被保存到要转移到 enclave 的磁盘目录中。

Enclave Environment (No Internet):

  • 用户运行 oc-mirror 插件 v2,将磁盘目录中的内容加载到 enclave-registry.in registry 中。

镜像可视化表示跨这些环境的数据流,并强调使用 oc-mirror 来处理断开连接和 enclave 环境,而无需互联网连接。

2.5.9.2. 镜像到 enclave

当镜像到 enclave 时,您必须首先将必要的镜像从一个或多个 enclaves 传送到企业中央 registry 中。

中央 registry 位于安全网络中,特别是断开连接的环境,且不会直接链接到公共互联网。但是,用户必须在一个可访问公共互联网的环境中执行 oc mirror

流程

  1. 在断开连接的环境中运行 oc-mirror 插件 v2 之前,请创建一个 registry.conf 文件。该文件的 TOML 格式如下所述:

    注意

    建议将文件存储在 $HOME/.config/containers/registries.conf/etc/containers/registries.conf 下。

    registry.conf 示例

    [[registry]]
    location="registry.redhat.io"
    [[registry.mirror]]
    location="<enterprise-registry.in>"
    
    [[registry]]
    location="quay.io"
    [[registry.mirror]]
    location="<enterprise-registry.in>"

  2. 生成镜像存档。

    1. 要将所有 OpenShift Container Platform 内容收集到磁盘的一个归档中(<file_path>/enterprise-content),请运行以下命令:

      $ oc mirror --v2 -c isc.yaml file://<file_path>/enterprise-content

      isc.yaml 示例

      apiVersion: mirror.openshift.io/v2alpha1
      kind: ImageSetConfiguration
      mirror:
        platform:
          architectures:
            - "amd64"
          channels:
            - name: stable-4.15
              minVersion: 4.15.0
              maxVersion: 4.15.3

      生成存档后,它将传送到断开连接的环境中。传输机制不是 oc-mirror 插件 v2 的一部分。企业网络管理员需要负责制定传输策略。

      在某些情况下,传输是手动完成的,例如在一个没有网络连接的环境中,将磁盘从一个物理机器中拔出,并插入到另外一个系统。在其他情况下,使用安全文件传输协议 (SFTP) 或其他协议。

  3. 完成存档传输后,您可以再次执行 oc-mirror 插件 v2,以便将相关存档内容镜像到 registry (在示例中是 entrerpise_registry.in),如下例所示:

    $ oc mirror --v2 -c isc.yaml --from file://<disconnected_environment_file_path>/enterprise-content docker://<enterprise_registry.in>/

    其中:

    • --from 指向包含存档的文件夹。它以 file:// 开头。
    • docker:// 是镜像 (mirror) 的目的地,这是最后的参数。因为它是一个 docker registry。
    • -c (--config)是一个强制参数。它可让 oc-mirror 插件 v2 最终仅将存档的子部分镜像到 registry。一个存档可能包含几个 OpenShift Container Platform 版本,但断开连接的环境或 enclave 可能只镜像几个。
  4. 准备 imageSetConfig YAML 文件,该文件描述了要镜像到 enclave 的内容:

    示例 isc-enclave.yaml

    apiVersion: mirror.openshift.io/v2alpha1
    kind: ImageSetConfiguration
    mirror:
      platform:
        architectures:
          - "amd64"
        channels:
          - name: stable-4.15
            minVersion: 4.15.2
            maxVersion: 4.15.2

    您必须在可访问断开连接的 registry 的机器上运行 oc-mirror 插件 v2。在上例中,可以访问断开连接的环境 enterprise-registry.in

  5. 更新图形 URL

    如果您使用 graph:true,oc-mirror 插件 v2 会尝试访问 cincinnati API 端点。由于此环境断开连接,因此请务必导出环境变量 UPDATE_URL_OVERRIDE,以引用 OpenShift Update Service (OSUS)的 URL:

    $ export UPDATE_URL_OVERRIDE=https://<osus.enterprise.in>/graph

    有关在 OpenShift 集群上设置 OSUS 的更多信息,请参阅"使用 OpenShift Update Service 在断开连接的环境中更新集群"。

注意

当升级 OpenShift Container Platform 延长更新支持(EUS)版本时,在当前和目标版本之间可能需要一个中间版本。例如,如果当前版本是 4.14,目标版本为 4.16,您可能需要在使用 oc-mirror 插件 v2 时在 ImageSetConfiguration 中包含版本,如 4.15.8

oc-mirror 插件 v2 可能并不总是自动检测,因此请检查 Cincinnati 图形网页 以确认任何所需的中间版本,并将它们手动添加到您的配置中。

  1. 为 enclave 从企业 registry 中生成镜像存档。

    要为 enclave1 准备存档,用户使用针对那个 enclave 专用的 imageSetConfiguration 在企业断开连接的环境中执行 oc-mirror 插件 v2。这样可确保仅镜像 enclave 需要的镜像:

    $ oc mirror --v2 -c isc-enclave.yaml
    file:///disk-enc1/

    此操作将所有 OpenShift Container Platform 内容收集到存档中,并在磁盘上生成存档。

  2. 生成存档后,它将传送到 enclave1 网络。传输机制不是 oc-mirror 插件 v2 的责任。
  3. 将内容镜像到 enclave registry

    完成存档传输后,用户可以再次执行 oc-mirror 插件 v2,以便将相关存档内容镜像到 registry。

    $ oc mirror --v2 -c isc-enclave.yaml --from file://local-disk docker://registry.enc1.in

    enclave1 中的 OpenShift Container Platform 集群的管理员现在可以安装或升级该集群。

2.5.10. 过滤在 Operator 目录中如何工作

oc-mirror 插件 v2 通过处理 imageSetConfig 中的信息来选择用于镜像的捆绑包列表。

当 oc-mirror 插件 v2 选择用于镜像的捆绑包时,它不会推断 Group Version Kind (GVK) 或捆绑包依赖项,从镜像集中省略它们。相反,它严格遵循用户指令。您必须明确指定任何所需的依赖软件包及其版本。

捆绑包版本通常使用语义版本标准 (SemVer),您可以根据版本在频道中对捆绑包进行排序。您可以选择位于 ImageSetConfig 中的特定范围的 buncles。

此选择算法确保与 oc-mirror 插件 v1 相比的一致性结果。但是,它不包括升级图形详情,如 replaces, skip, 和 skipRange。这种方法与 OLM 算法不同。它可能会比升级集群所需的更多捆绑包进行镜像(mirror),因为 minVersionmaxVersion 之间的升级路径可能比较短。

表 2.4. 使用下表查看在不同场景中包括哪些捆绑包版本
ImageSetConfig operator 过滤预期的捆绑包版本

场景 1

mirror:
 operators:
   - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.10

对于目录中每个包(1 个捆绑包),对应于该软件包的默认频道的头版本。

场景 2

mirror:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.10
      full: true

指定目录的所有频道的所有捆绑包

场景 3

mirror:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.10
     packages:
    - name: compliance-operator

一个捆绑包,对应于该软件包的默认频道的头版本

场景 4

mirror:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.10
      full: true
      - packages:
          - name: elasticsearch-operator

指定软件包的所有频道捆绑包

场景 5

mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
    packages:
    - name: compliance-operator
       minVersion: 5.6.0

默认频道中的所有捆绑包(从 minVersion )到频道头,该软件包不依赖于升级图表的最短路径。

场景 6

mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
    packages:
    - name: compliance-operator
        maxVersion: 6.0.0

默认频道中的所有捆绑包都低于该软件包的 maxVersion

场景 7

mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
    packages:
    - name: compliance-operator
        minVersion: 5.6.0
        maxVersion: 6.0.0

默认频道中的所有捆绑包,在那个软件包的 minVersionmaxVersion 之间。频道头不包含,即使过滤中包含多个频道。

场景 8

mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
    packages:
    - name: compliance-operator
        channels
          - name: stable

该软件包所选频道的头捆绑包。

场景 9

mirror:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.10
      full: true
      - packages:
          - name: elasticsearch-operator
            channels:
               - name: 'stable-v0'

指定软件包和频道的所有捆绑包。

场景 10

mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
    packages:
    - name: compliance-operator
        channels
          - name: stable
          - name: stable-5.5

该软件包每个所选频道的头捆绑包。

场景 11

mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
    packages:
    - name: compliance-operator
        channels
          - name: stable
            minVersion: 5.6.0

在该软件包所选频道中,所有版本都以 minVersion 开头,直到频道头。这个场景并不能依赖升级图表中的最短路径。

场景 12

mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
    packages:
    - name: compliance-operator
        channels
          - name: stable
            maxVersion: 6.0.0

在该软件包所选频道中,所有版本都最多为 maxVersion (不依赖于升级图中的最佳路径)。频道头不包含,即使过滤中包含多个频道。

场景 13

mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
    packages:
    - name: compliance-operator
       channels
          - name: stable
            minVersion: 5.6.0
            maxVersion: 6.0.0

在该软件包的所选频道中,minVersionmaxVersion 之间的所有版本都不依赖于升级图表中最短的路径。频道头不包含,即使过滤中包含多个频道。

场景 14

mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
    packages:
    - name: aws-load-balancer-operator
      bundles:
      - name: aws-load-balancer-operator.v1.1.0
    - name: 3scale-operator
      bundles:
      - name: 3scale-operator.v0.10.0-mas

只有为每个软件包指定的捆绑包才会包含在过滤中。

场景 15

mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
    packages:
    - name: compliance-operator
        channels
          - name: stable
        minVersion: 5.6.0
        maxVersion: 6.0.0

不要使用这个场景。通过频道过滤,以及不允许带有 minVersionmaxVersion 的软件包。

场景 16

mirror:
  operators:
   - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
    packages:
    - name: compliance-operator
        channels
          - name: stable
        minVersion: 5.6.0
        maxVersion: 6.0.0

请勿使用此场景。您不能使用 full:trueminVersionmaxVersion 进行过滤。

场景 17

mirror:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
      full: true
    packages:
    - name: compliance-operator
        channels
          - name: stable
            minVersion: 5.6.0
            maxVersion: 6.0.0

请勿使用此场景。您不能使用 full:trueminVersionmaxVersion 进行过滤。

2.5.11. oc-mirror 插件 v2 的 ImageSet 配置参数

oc-mirror 插件 v2 需要一个镜像设置配置文件,该文件定义哪些镜像要镜像(mirror)。下表列出了 ImageSetConfiguration 资源的可用参数。

注意

使用 minVersionmaxVersion 属性过滤特定 Operator 版本范围可能会导致多个频道头错误。错误信息将显示有多个频道头。这是因为在应用过滤器时,Operator 的更新图会被截断。

OLM 要求每个 Operator 频道都包含组成一个更新图表的版本,它只有一个端点,即 Operator 的最新版本。在应用图形的过滤器范围时,可以进入两个或多个独立图形或具有多个端点的图形。

要避免这个错误,请不要过滤 Operator 的最新版本。如果您仍然遇到错误,具体取决于 Operator,则必须增加 maxVersion 属性,或者 minVersion 属性必须减少。因为每个 Operator 图都可以不同,所以您可能需要调整这些值,直到错误解决为止。

表 2.5. ImageSetConfiguration 参数
参数描述

apiVersion

ImageSetConfiguration 内容的 API 版本。

字符串示例: mirror.openshift.io/v2alpha1

archiveSize

镜像集中的每个存档文件的最大大小(以 GiB 为单位)。

整数示例:4

mirror

镜像集的配置。

对象

mirror.additionalImages

镜像集的额外镜像配置。

对象数组

Example:

additionalImages:
  - name: registry.redhat.io/ubi8/ubi:latest

mirror.additionalImages.name

要 mirror 的镜像的标签或摘要。

字符串示例:registry.redhat.io/ubi8/ubi:latest

mirror.blockedImages

阻止 mirror 的镜像的完整标签、摘要或模式。

字符串数组示例:docker.io/library/alpine

mirror.operators

镜像集的 Operator 配置。

对象数组

Example:

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:4.16
    packages:
      - name: elasticsearch-operator
        minVersion: '2.4.0'

mirror.operators.catalog

包括在镜像集中的 Operator 目录。

字符串示例: registry.redhat.io/redhat/redhat-operator-index:v4.15

mirror.operators.full

true 时,下载完整的目录、Operator 软件包或 Operator 频道。

布尔值,默认值为 false

mirror.operators.packages

Operator 软件包配置。

对象数组

Example:

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:4.16
    packages:
      - name: elasticsearch-operator
        minVersion: '5.2.3-31'

mirror.operators.packages.name

镜像集中要包含的 Operator 软件包名称。

字符串示例:elasticsearch-operator

mirror.operators.packages.channels

Operator 软件包频道配置

对象

mirror.operators.packages.channels.name

Operator 频道名称(软件包中唯一)要包括在镜像集中。

字符串示例:faststable-v4.15

mirror.operators.packages.channels.maxVersion

Operator 镜像的最高版本,在其中存在所有频道。

字符串示例:5.2.3-31

mirror.operators.packages.channels.minVersion

Operator 的最低版本,用于镜像存在的所有频道

字符串示例:5.2.3-31

mirror.operators.packages.maxVersion

Operator 最高版本,可跨所有存在的频道进行镜像。

字符串示例:5.2.3-31

mirror.operators.packages.minVersion

Operator 的最低版本,用于镜像存在的所有频道。

字符串示例:5.2.3-31

mirror.operators.packages.bundles

选择的捆绑包配置

对象数组

Example:

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:4.16
    packages:
    - name: 3scale-operator
      bundles:
      - name: 3scale-operator.v0.10.0-mas

mirror.operators.packages.bundles.name

为镜像选择的捆绑包的名称(因为它出现在目录中)。

字符串示例:3scale-operator.v0.10.0-mas

mirror.operators.targetCatalog

将引用的目录镜像为的替代名称和可选命名空间层次结构

字符串示例:my-namespace/my-operator-catalog

mirror.operators.targetCatalogSourceTemplate

用于完成 oc-mirror 插件 v2 生成的 catalogSource 自定义资源的模板的路径。

字符串示例:/tmp/catalog-source_template.yaml 模板文件示例:

apiVersion: operators.coreos.com/v2alpha1
kind: CatalogSource
metadata:
  name: discarded
  namespace: openshift-marketplace
spec:
  image: discarded
  sourceType: grpc
  updateStrategy:
registryPoll:
interval: 30m0s

mirror.operators.targetTag

附加到 targetNametargetCatalog 的替代标签。

字符串示例:v1

mirror.platform

镜像集的平台配置。

对象

mirror.platform.architectures

要镜像的平台发行版本有效负载的架构。

字符串数组示例:

architectures:
  - amd64
  - arm64
  - multi
  - ppc64le
  - s390x

默认值为 amd64。值 multi 确保镜像支持所有可用架构,无需指定单个架构。

mirror.platform.channels

镜像集的平台频道配置。

对象数组示例:

channels:
  - name: stable-4.12
  - name: stable-4.16

mirror.platform.channels.full

true 时,将 minVersion 设置为频道中的第一个发行版本,将 maxVersion 设置为该频道的最后一个发行版本。

布尔值,默认为 false

mirror.platform.channels.name

版本频道的名称

字符串示例:stable-4.15

mirror.platform.channels.minVersion

要镜像引用的平台的最低版本。

字符串示例:4.12.6

mirror.platform.channels.maxVersion

要镜像引用的平台的最高版本。

字符串示例:4.15.1

mirror.platform.channels.shortestPath

切换最短的路径镜像或完整范围镜像。

布尔值,默认为 false

mirror.platform.channels.type

要镜像的平台的类型

字符串示例:ocpokd。默认为 ocp

mirror.platform.graph

指明是否将 OSUS 图表添加到镜像集中,然后发布到镜像。

布尔值,默认为 false

2.5.11.1. 删除 ImageSet 配置参数

要使用 oc-mirror 插件 v2,您必须有删除镜像设置配置文件,该文件定义要从镜像 registry 中删除哪些镜像。下表列出了 DeleteImageSetConfiguration 资源的可用参数。

表 2.6. DeleteImageSetConfiguration 参数
参数描述

apiVersion

DeleteImageSetConfiguration 内容的 API 版本。

字符串示例: mirror.openshift.io/v2alpha1

delete

镜像集要删除的配置。

对象

delete.additionalImages

删除镜像集的额外镜像配置。

对象数组示例:

additionalImages:
  - name: registry.redhat.io/ubi8/ubi:latest

delete.additionalImages.name

要删除的镜像的标签或摘要。

字符串示例:registry.redhat.io/ubi8/ubi:latest

delete.operators

删除镜像集的 Operator 配置。

对象数组示例:

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:{product-version}
    packages:
      - name: elasticsearch-operator
        minVersion: '2.4.0'

delete.operators.catalog

要在 delete 镜像集中包含的 Operator 目录。

字符串示例: registry.redhat.io/redhat/redhat-operator-index:v4.15

delete.operators.full

如果为 true,则删除完整目录、Operator 软件包或 Operator 频道。

布尔值,默认为 false

delete.operators.packages

Operator 软件包配置

对象数组示例:

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:{product-version}
    packages:
      - name: elasticsearch-operator
        minVersion: '5.2.3-31'

delete.operators.packages.name

要在 delete 镜像集中包含的 Operator 软件包名称。

字符串示例:elasticsearch-operator

delete.operators.packages.channels

Operator 软件包频道配置

对象

delete.operators.packages.channels.name

Operator 频道名称(在软件包中是唯一的)包括在 delete 镜像集中。

字符串示例: faststable-v4.15

delete.operators.packages.channels.maxVersion

在所选频道中删除的 Operator 的最高版本。

字符串示例:5.2.3-31

delete.operators.packages.channels.minVersion

在存在的选择中删除 Operator 的最低版本。

字符串示例:5.2.3-31

delete.operators.packages.maxVersion

在存在的所有频道中删除 Operator 的最高版本。

字符串示例:5.2.3-31

delete.operators.packages.minVersion

在存在的所有频道中删除 Operator 的最低版本。

字符串示例:5.2.3-31

delete.operators.packages.bundles

所选捆绑包配置

对象数组

您不能为同一 Operator 选择频道和捆绑包。

Example:

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:{product-version}
    packages:
    - name: 3scale-operator
      bundles:
      - name: 3scale-operator.v0.10.0-mas

delete.operators.packages.bundles.name

选择要删除的捆绑包的名称(因为它显示在目录中)

字符串示例:3scale-operator.v0.10.0-mas

delete.platform

镜像集的平台配置

对象

delete.platform.architectures

要删除的平台发行版本有效负载的架构。

字符串数组示例:

architectures:
  - amd64
  - arm64
  - multi
  - ppc64le
  - s390x

默认值为 amd64

delete.platform.channels

镜像集的平台频道配置。

对象数组

Example:

channels:
  - name: stable-4.12
  - name: stable-4.16

delete.platform.channels.full

true 时,将 minVersion 设置为频道中的第一个发行版本,将 maxVersion 设置为该频道的最后一个发行版本。

布尔值,默认为 false

delete.platform.channels.name

版本频道的名称

字符串示例:stable-4.15

delete.platform.channels.minVersion

要删除的引用平台的最低版本。

字符串示例:4.12.6

delete.platform.channels.maxVersion

要删除的引用平台的最高版本。

字符串示例:4.15.1

delete.platform.channels.shortestPath

在删除最短路径并删除完整范围之间切换。

布尔值,默认为 false

delete.platform.channels.type

要删除的平台的类型

字符串示例:ocpokd。默认为 ocp

delete.platform.graph

确定是否在镜像 registry 上也删除 OSUS 图形。

布尔值,默认为 false

2.5.12. oc-mirror 插件 v2 的命令参考

下表描述了 oc mirror 子命令和 oc-mirror 插件 v2 的标志:

表 2.7. oc-mirror 插件 v2 的子命令和标志
子命令描述

帮助

显示有关任何子命令的帮助

version

输出 oc-mirror 版本

delete

删除远程 registry 和本地缓存中的镜像。

表 2.8. oc mirror 标记
标记描述

--authfile

显示身份验证文件的字符串路径。默认为 ${XDG_RUNTIME_DIR}/containers/auth.json

-c, --config <string>

指定镜像设置配置文件的路径。

--dest-tls-verify

在访问容器 registry 或守护进程时,需要 HTTPS 并验证证书。

--dry-run

打印没有 mirror 镜像的操作

--from <string>

指定通过执行 oc-mirror 插件 v2 来加载目标 registry 生成的镜像设置存档的路径。

-h,--help

显示帮助

--loglevel

显示字符串日志级别。支持的值包括 info、debug、trace、error。默认为 info

-p, --port

确定 oc-mirror 插件 v2 本地存储实例使用的 HTTP 端口。默认值为 55000

--max-nested-paths <int>

指定限制嵌套路径的目标 registry 的最大嵌套路径数。默认值为 0

--secure-policy

默认值为 false。如果您设置了非默认值,命令会启用签名验证,这是签名验证的安全策略。

--since

包含自指定日期以来的所有新内容(格式:yyyy-mm-dd)。如果没有提供,自以前的镜像(mirror)以来的新内容会被镜像。

--src-tls-verify

在访问容器 registry 或守护进程时,需要 HTTPS 并验证证书。

--strict-archive

默认值为 false。如果您设置了值,命令会生成比 imageSetConfig 自定义资源 (CR) 中设置的 archiveSize 的存档。如果正在归档的文件超过 archiveSize (GB),则镜像已存在。

-v, --version

显示 oc-mirror 插件 v2 的版本。

--workspace

决定字符串 oc-mirror 插件 v2 工作区,其中生成资源和内部工件。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.