4.3. 将镜像推送到 OpenShift Container Platform 集群
先决条件
从 RHEL 机器访问 OpenShift Container Platform 集群。
从 RHEL 机器,将镜像推送到集群 registry:
$ podman push <cluster-domain>:<registry-port>/iib:my-operator-iib
创建镜像过程所需的三个文件:
$ /usr/local/bin/oc adm catalog mirror \ <cluster-domain>:<registry-port>/iib:my-operator-iib \ <cluster-domain>:<registry-port> \ -a /home/customer-user/.docker/config.json \ --insecure=true \ --registry-config /home/customer-user/.docker/config.json \ --index-filter-by-os=linux/amd64 \ --manifests-only
请确定有以下文件:
-
CatalogSource.yaml
- 描述 catalogSource 的 YAML 文件。 -
ImageContentSourcePolicy.yaml
- 使用红帽 registry 中的地址映射内部 registry 中的镜像的 YAML 文件。 -
mapping.txt
- 将镜像镜像(mirror)到内部 registry 的文本文件。
-
编辑
mapping.txt
,以仅列出您要镜像的镜像。该文件的格式如下:
[ Operator address on RedHat registry : Operator SHA ] = [ Operator address on internal mirror registry : tag ]
mapping.txt
文件示例:registry.redhat.io/amq7/amq-interconnect@sha256:6101cc735e4d19cd67c6d80895c425ecf6f1d2604d88f999fa0cae57a7d6abaf=<cluster-domain>:<registry-port>/amq7-amq-interconnect:f793b0cc registry.redhat.io/amq7/amq-interconnect-operator@sha256:8dd53290c909589590b88a1544d854b4ad9f8b4a639189597c0a59579bc60c40=<cluster-domain>:<registry-port>/amq7-amq-interconnect-operator:73c142ff registry.redhat.io/amq7/amq-interconnect-operator-metadata@sha256:799ce48905d5d2a91b42e2a7943ce9b756aa9da80f6924be06b2a6275ac90214=<cluster-domain>:<registry-port>/amq7-amq-interconnect-operator-metadata:14cc4a4e
镜像所需的镜像
$ /usr/local/bin/oc image mirror \ -f mapping-ic.yaml \ -a /home/customer-user/.docker/config.json \ --insecure=true \ --registry-config /home/customer-user/.docker/config.json \ --keep-manifest-list=true
配置
ImageContentSourcePolicy
(ICSP)名称:在文件 imageContentSourcePolicy.yaml 中设置字段 'name',例如
my-operator-icsp
ICSP 片断示例:
--- apiVersion: operator.openshift.io/v1alpha1 kind: ImageContentSourcePolicy metadata: labels: operators.openshift.org/catalog: "true" name: my-operator-icsp spec: repositoryDigestMirrors: - mirrors: - <cluster-domain>:<registry-port>/amq7-amq-interconnect-operator source: registry.redhat.io/amq7/amq-interconnect-operator
应用策略(ICSP)文件:
$ /usr/local/bin/oc create -f imageContentSourcePolicy.yaml
应用此文件后,所有集群节点都会自动重置。您可以使用
oc get nodes
或 OpenShift 控制台检查节点状态,方法是导航到 ComputeNodes。 注意在继续前,请确保所有节点都处于 Ready 状态。
配置 catalogSource 名称:
在
catalogSource.yaml
文件中设置字段名称
,如my-operator-catalog
catalogSource.yaml
文件示例:apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: iib namespace: openshift-marketplace spec: image: <cluster-domain>:<registry-port>/iib:my-operator-iib sourceType: grpc
应用目录源配置以完成 Red Hat Integration - AMQ Interconnect Operator 的安装:
$ /usr/local/bin/oc apply -f catalogSource.yaml
- 如 所述,通过部署路由器确保安装正常工作。 第 5.1 节 “创建内路由器部署”