11.3. ImagePolicy 승인 플러그인 구성
클러스터에서 실행할 수 있는 이미지를 구성하려면 master-config.yaml
파일에서 ImagePolicy 승인 플러그인을 구성합니다. 필요에 따라 하나 이상의 규칙을 설정할 수 있습니다.
특정 주석이 있는 이미지를 거부합니다.
이 규칙을 사용하여 특정 주석이 설정된 이미지를 모두 거부합니다. 다음은
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 추가 기능 플러그인 규칙을 설정하는 구성 예입니다.
주석이 있는 예제 파일
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
- 규칙을 적용할 리소스를 나타냅니다. 아무것도 지정되지 않은 경우 기본값은 pods 입니다.
- 4
- 이 규칙이 일치하면 포드가 거부되어야 함을 나타냅니다.
- 5
- 이미지 오브젝트의 메타데이터와 일치시킬 주석 목록입니다.
- 6
- 이미지를 확인할 수 없는 경우 포드에 실패하지 마십시오.
- 7
- Kubernetes 리소스에서 이미지 스트림을 사용하도록 허용하는 규칙 배열입니다. 기본 구성을 사용하면 Pod, replicationcontrollers, replicasets, statefulsets, daemonsets, 배포 및 작업이 이미지 필드에서 동일한 프로젝트 이미지 스트림 태그 참조를 사용할 수 있습니다.
- 8
- 이 규칙이 적용되는 그룹 및 리소스를 식별합니다. resource가
*
이면 이 규칙은 해당 그룹의 모든 리소스에 적용됩니다. - 9
LocalNames
는 리소스 또는 대상 이미지 스트림에로컬 이름 확인이
활성화된 경우에만 단일 세그먼트 이름(예: ruby:2.5
)을 네임스페이스-로컬 이미지 스트림 태그로 해석할 수 있습니다.
일반적으로 기본 레지스트리 접두사(예: docker.io 또는 registry.redhat.io )를 사용하여 가져오는 인프라 이미지를 사용하는 경우 해당 이미지는 레지스트리 접두사가 없으므로 matchRegistries
값과 일치하지 않습니다. 인프라 이미지에 이미지 정책과 일치하는 레지스트리 접두사가 있도록 하려면 master-config .yaml 파일에 imageConfig. format
값을 설정합니다.