8.4. 自定义默认 Operator 镜像
对于生产环境 Quay 环境,不支持使用此机制,强烈建议仅用于开发/测试。使用 Quay Operator 的非默认镜像时,无法保证部署正常工作。
在某些情况下,覆盖 Operator 使用的默认镜像可能会很有用。这可以通过在 Quay Operator ClusterServiceVersion 中设置一个或多个环境变量来实现。
8.4.1. 环境变量 复制链接链接已复制到粘贴板!
Operator 中使用以下环境变量覆盖组件镜像:
| 环境变量 | 组件 |
|
|
|
|
|
|
|
|
|
|
|
|
清单 必须引用 覆盖镜像(@sha256:),而不是标签(:latest)。
8.4.2. 将覆盖应用到正在运行的 Operator 复制链接链接已复制到粘贴板!
当通过 Operator Lifecycle Manager(OLM)在集群中安装 Quay Operator 时,受管组件容器镜像可以通过修改 ClusterServiceVersion 对象来轻松覆盖,这是 OLM 在集群中运行 Operator 的表示。使用 Kubernetes UI 或 kubectl/oc 查找 Quay Operator 的 ClusterServiceVersion :
$ oc get clusterserviceversions -n <your-namespace>
使用 UI、oc edit 或任何其他方法修改 Quay ClusterServiceVersion,使其包含上方概述的环境变量以指向覆盖镜像:
JSONPath:spec.install.spec.deployments[0].spec.template.spec.containers[0].env
- name: RELATED_IMAGE_COMPONENT_QUAY
value: quay.io/projectquay/quay@sha256:c35f5af964431673f4ff5c9e90bdf45f19e38b8742b5903d41c10cc7f6339a6d
- name: RELATED_IMAGE_COMPONENT_CLAIR
value: quay.io/projectquay/clair@sha256:70c99feceb4c0973540d22e740659cd8d616775d3ad1c1698ddf71d0221f3ce6
- name: RELATED_IMAGE_COMPONENT_POSTGRES
value: centos/postgresql-10-centos7@sha256:de1560cb35e5ec643e7b3a772ebaac8e3a7a2a8e8271d9e91ff023539b4dfb33
- name: RELATED_IMAGE_COMPONENT_REDIS
value: centos/redis-32-centos7@sha256:06dbb609484330ec6be6090109f1fa16e936afcf975d1cbc5fff3e6c7cae7542
请注意,这是在 Operator 级别上完成的,因此每个 QuayRegistry 都使用相同的覆盖进行部署。