7장. Kubernetes 리소스가 포함된 이미지 스트림 사용

OpenShift Container Platform 네이티브 리소스인 이미지 스트림은 Build 또는 DeploymentConfigs 리소스와 같은 OpenShift Container Platform에서 사용할 수 있는 모든 네이티브 리소스와 함께 작동합니다. 또한 Job,ReplicationController,ReplicaSet 또는 Kubernetes Deployment 리소스와 같은 네이티브 Kubernetes 리소스와 함께 작동하도록 할 수도 있습니다.

7.1. Kubernetes 리소스가 포함된 이미지 스트림 활성화

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

참고

이 기능은 default 네임스페이스나 openshift- 또는 kube- 네임스페이스에서 사용할 수 없습니다.

Kubernetes 리소스가 포함된 이미지 스트림을 활성화하는 방법은 다음 두 가지가 있습니다.

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

절차

oc set image-lookup을 통해 특정 리소스에서 이미지 스트림 분석을 활성화하거나 이미지 스트림에서 이미지 스트림 분석을 활성화할 수 있습니다.

  1. 모든 리소스가 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

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

  2. 그런 다음 이미지 스트림을 조회하여 옵션이 설정되었는지 확인할 수 있습니다.

    $ 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