7장. Kubernetes 리소스가 포함된 이미지 스트림 사용
OpenShift Container Platform 네이티브 리소스인 이미지 스트림은 빌드 또는 배포와 같이 OpenShift Container Platform에서 사용할 수 있는 다른 모든 네이티브 리소스와 함께 곧바로 작동됩니다. 작업, 복제 컨트롤러, 복제본 세트 또는 Kubernetes 배포 등 네이티브 Kubernetes 리소스와 함께 작동하도록 할 수도 있습니다.
7.1. Kubernetes 리소스가 포함된 이미지 스트림 활성화
Kubernetes 리소스가 포함된 이미지 스트림을 사용하는 경우 리소스와 동일한 프로젝트에 상주하는 이미지 스트림만 참조할 수 있습니다. 이미지 스트림 참조는 ruby:2.5
와 같은 단일 세그먼트 값으로 구성되어야 합니다. 여기서, ruby
는 2.5
라는 태그가 있고 참조하는 리소스와 동일한 프로젝트에 상주하는 이미지 스트림의 이름입니다.
이 기능은 default
네임스페이스나 openshift-
또는 kube-
네임스페이스에서 사용할 수 없습니다.
Kubernetes 리소스가 포함된 이미지 스트림을 활성화하는 방법은 다음 두 가지가 있습니다.
- 특정 리소스에서 이미지 스트림 분석을 활성화합니다. 이렇게 하면 해당 리소스만 이미지 필드에서 이미지 스트림 이름을 사용할 수 있습니다.
- 이미지 스트림에서 이미지 스트림 해석을 활성화합니다. 이렇게 하면 해당 이미지 스트림을 가리키는 모든 리소스가 이미지 필드에서 그 이미지 스트림 이름을 사용할 수 있습니다.
절차
oc set image-lookup
을 통해 특정 리소스에서 이미지 스트림 분석을 활성화하거나 이미지 스트림에서 이미지 스트림 분석을 활성화할 수 있습니다.
모든 리소스가
mysql
이라는 이미지 스트림을 참조하도록 허용하려면 다음 명령을 입력합니다.$ oc set image-lookup mysql
이렇게 하면
Imagestream.spec.lookupPolicy.local
필드가 True로 설정됩니다.이미지 조회가 활성화된 이미지 스트림
apiVersion: image.openshift.io/v1 kind: ImageStream metadata: annotations: openshift.io/display-name: mysql name: mysql namespace: myproject spec: lookupPolicy: local: true
활성화되는 경우 이미지 스트림 내 모든 태그에 대해 해당 동작이 활성화됩니다.
그런 다음 이미지 스트림을 조회하여 옵션이 설정되었는지 확인할 수 있습니다.
$ oc set image-lookup imagestream --list
특정 리소스에서 이미지 조회를 활성화할 수 있습니다.
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