Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

13.3. Kubernetes 리소스에서 이미지 스트림 사용

OpenShift Container Platform 네이티브 리소스인 이미지 스트림은 빌드 또는 배포 와 같이 OpenShift Container Platform에서 사용할 수 있는 다른 모든 네이티브 리소스와 함께 바로 사용할 수 있습니다. 현재는 작업,복제 컨트롤러, 복제본 세트 또는 Kubernetes 배포 등 네이티브 Kubernetes 리소스와 함께 작동하도록 할 수도 있습니다.

클러스터 관리자는 사용할 수 있는 리소스를 정확하게 구성합니다.

활성화하면 리소스의 image 필드에 이미지 스트림에 대한 참조를 배치할 수 있습니다. 이 기능을 사용하는 경우 리소스와 동일한 프로젝트에 상주하는 이미지 스트림만 참조할 수 있습니다. 이미지 스트림 참조는 ruby:2.5 와 같은 단일 세그먼트 값으로 구성되어야 합니다. 여기서 ruby2.5 라는 태그가 있고 참조하는 리소스와 동일한 프로젝트에 상주하는 이미지 스트림의 이름입니다.

이를 가능하게 하는 방법은 두 가지가 있습니다.

  1. 특정 리소스에서 이미지 스트림 분석을 활성화합니다. 이렇게 하면 해당 리소스만 이미지 필드에서 이미지 스트림 이름을 사용할 수 있습니다.
  2. 이미지 스트림에서 이미지 스트림 해석을 활성화합니다. 이렇게 하면 해당 이미지 스트림을 가리키는 모든 리소스가 이미지 필드에서 그 이미지 스트림 이름을 사용할 수 있습니다.

이 두 작업 모두 oc set image-lookup 을 사용하여 수행할 수 있습니다. 예를 들어 다음 명령을 사용하면 모든 리소스가 mysql 이라는 이미지 스트림을 참조할 수 있습니다.

$ oc set image-lookup mysql

이렇게 하면 Imagestream.spec.lookupPolicy.local 필드가 true로 설정됩니다.

이미지 조회가 활성화된 이미지 스트림

apiVersion: v1
kind: ImageStream
metadata:
  annotations:
    openshift.io/display-name: mysql
  name: mysql
  namespace: myproject
spec:
  lookupPolicy:
    local: true

활성화되는 경우 이미지 스트림 내 모든 태그에 대해 해당 동작이 활성화됩니다.

이미지 스트림을 쿼리하고 다음을 사용하여 옵션이 설정되었는지 확인할 수 있습니다.

$ oc set image-lookup

특정 리소스에서 이미지 조회를 활성화할 수도 있습니다. 이 명령을 사용하면 mysql 이라는 Kubernetes 배포가 이미지 스트림을 사용할 수 있습니다.

$ oc set image-lookup deploy/mysql

이렇게 하면 배포에 alpha.image.policy.openshift.io/resolve-names 주석이 설정됩니다.

이미지 조회가 활성화된 배포

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
  namespace: myproject
spec:
  replicas: 1
  template:
    metadata:
      annotations:
        alpha.image.policy.openshift.io/resolve-names: '*'
    spec:
      containers:
      - image: mysql:latest
        imagePullPolicy: Always
        name: mysql

이미지 조회를 비활성화하려면 --enabled=false 를 전달합니다.

$ oc set image-lookup deploy/mysql --enabled=false