Red Hat Training
A Red Hat training course is available for OpenShift Container Platform
11.3. 配置 ImagePolicy Admission 插件
要配置可以在集群中运行的镜像,请在 master-config.yaml 文件中配置 ImagePolicy Admission 插件。您可以根据需要设置一个或多个规则。
使用特定注解拒绝镜像 :
使用此规则拒绝在其上设置特定注解的所有镜像。以下使用
images.openshift.io/deny-execution注解拒绝所有镜像:- name: execution-denied onResources: - resource: pods - resource: builds reject: true matchImageAnnotations: - key: images.openshift.io/deny-execution 1 value: "true" skipOnResolutionFailure: true- 1
- 如果特定镜像被视为是恶意的,管理员可以设置此注解来标记这些镜像。
允许用户从 Docker Hub 运行镜像 :
使用此规则允许用户使用 Docker Hub 中的镜像:
- name: allow-images-from-dockerhub onResources: - resource: pods - resource: builds matchRegistries: - docker.io
以下是在 master-config.yaml 文件中设置多个 ImagePolicy addmission 插件规则的示例配置:
注解的文件示例
admissionConfig:
pluginConfig:
openshift.io/ImagePolicy:
configuration:
kind: ImagePolicyConfig
apiVersion: v1
resolveImages: AttemptRewrite 1
executionRules: 2
- name: execution-denied
# Reject all images that have the annotation images.openshift.io/deny-execution set to true.
# This annotation may be set by infrastructure that wishes to flag particular images as dangerous
onResources: 3
- resource: pods
- resource: builds
reject: true 4
matchImageAnnotations: 5
- key: images.openshift.io/deny-execution
value: "true"
skipOnResolutionFailure: true 6
- name: allow-images-from-internal-registry
# allows images from the internal registry and tries to resolve them
onResources:
- resource: pods
- resource: builds
matchIntegratedRegistry: true
- name: allow-images-from-dockerhub
onResources:
- resource: pods
- resource: builds
matchRegistries:
- docker.io
resolutionRules: 7
- targetResource:
resource: pods
localNames: true
policy: AttemptRewrite
- targetResource: 8
group: batch
resource: jobs
localNames: true 9
policy: AttemptRewrite
- 1
- 尝试将镜像解析到不可变镜像摘要中,并更新 pod 中的镜像拉取规格。
- 2
- 针对传入资源进行评估的规则数组。如果您只有
reject: true规则,则默认为 允许所有。如果您有任何接受规则,则在任何规则中都reject: false,ImagePolicy 的默认行为 deny-all。 - 3
- 指示要强制执行规则的资源。如果未指定任何内容,则默认为 pod。
- 4
- 表示如果此规则匹配,则 Pod 应该被拒绝。
- 5
- 镜像对象的元数据匹配的注解列表。
- 6
- 如果您无法解析镜像,请不要失败 pod。
- 7
- 允许在 Kubernetes 资源中使用镜像流的规则数组。默认配置允许 pod、复制控制器、replicaset、有状态集、daemonset、Deployment 和作业在镜像字段中使用相同的项目镜像流标签引用。
- 8
- 标识规则应用到的组和资源。如果资源是
*,则此规则将应用到该组中的所有资源。 - 9
注意
如果您通常依赖使用默认 registry 前缀(如 docker.io 或 registry.redhat.io)拉取的基础架构镜像,则这些镜像与任何 matchRegistries 值不匹配,因为它们没有 registry 前缀。为确保基础架构镜像具有与镜像策略匹配的 registry 前缀,请在 master-config.yaml 文件中设置 imageConfig.format 值。