13.3. Kubernetes 리소스에서 이미지 스트림 사용
OpenShift Container Platform 네이티브 리소스인 이미지 스트림은 빌드 또는 배포 와 같이 OpenShift Container Platform에서 사용할 수 있는 다른 모든 네이티브 리소스와 함께 바로 사용할 수 있습니다. 현재는 작업,복제 컨트롤러, 복제본 세트 또는 Kubernetes 배포 등 네이티브 Kubernetes 리소스와 함께 작동하도록 할 수도 있습니다.
클러스터 관리자는 사용할 수 있는 리소스를 정확하게 구성합니다.
활성화하면 리소스의 image
필드에 이미지 스트림에 대한 참조를 배치할 수 있습니다. 이 기능을 사용하는 경우 리소스와 동일한 프로젝트에 상주하는 이미지 스트림만 참조할 수 있습니다. 이미지 스트림 참조는 ruby:2.5
와 같은 단일 세그먼트 값으로 구성되어야 합니다. 여기서 ruby
는 2.5
라는 태그가 있고 참조하는 리소스와 동일한 프로젝트에 상주하는 이미지 스트림의 이름입니다.
이를 가능하게 하는 방법은 두 가지가 있습니다.
- 특정 리소스에서 이미지 스트림 분석을 활성화합니다. 이렇게 하면 해당 리소스만 이미지 필드에서 이미지 스트림 이름을 사용할 수 있습니다.
- 이미지 스트림에서 이미지 스트림 해석을 활성화합니다. 이렇게 하면 해당 이미지 스트림을 가리키는 모든 리소스가 이미지 필드에서 그 이미지 스트림 이름을 사용할 수 있습니다.
이 두 작업 모두 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