7장. Kubernetes 리소스가 포함된 이미지 스트림 사용
OpenShift Container Platform 네이티브 리소스인 이미지 스트림은 Build
또는 DeploymentConfigs
리소스와 같은 OpenShift Container Platform에서 사용할 수 있는 모든 네이티브 리소스와 함께 작동합니다. 또한 Job
,ReplicationController
,ReplicaSet
또는 Kubernetes Deployment
리소스와 같은 네이티브 Kubernetes 리소스와 함께 작동하도록 할 수도 있습니다.
7.1. Kubernetes 리소스가 포함된 이미지 스트림 활성화
Kubernetes 리소스가 포함된 이미지 스트림을 사용하는 경우 리소스와 동일한 프로젝트에 상주하는 이미지 스트림만 참조할 수 있습니다. 이미지 스트림 참조는 ruby:2.5
와 같은 단일 세그먼트 값으로 구성되어야 합니다. 여기서, ruby
는 2.5
라는 태그가 있고 참조하는 리소스와 동일한 프로젝트에 상주하는 이미지 스트림의 이름입니다.
기본 프로젝트에서 워크로드를 실행하거나 기본 프로젝트에 대한 액세스를 공유하지 마세요. 기본 프로젝트는 핵심 클러스터 구성 요소를 실행하기 위해 예약되어 있습니다.
다음 기본 프로젝트는 높은 권한이 있는 것으로 간주됩니다. default
, kube-public
, kube-system
, openshift
, openshift-infra
, openshift-node
및 openshift.io/run-level
레이블이 0
또는 1
로 설정된 기타 시스템 생성 프로젝트입니다. Pod 보안 승인, 보안 컨텍스트 제약 조건, 클러스터 리소스 할당량 및 이미지 참조 확인과 같은 승인 플러그인에 의존하는 기능은 높은 권한 있는 프로젝트에서 작동하지 않습니다.
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