6.6. 이미지 스트림으로 작업
다음 섹션에서는 이미지 스트림 및 이미지 스트림 태그를 사용하는 방법에 대해 설명합니다.
기본 프로젝트에서 워크로드를 실행하거나 기본 프로젝트에 대한 액세스를 공유하지 마세요. 기본 프로젝트는 핵심 클러스터 구성 요소를 실행하기 위해 예약되어 있습니다.
다음 기본 프로젝트는 높은 권한이 있는 것으로 간주됩니다. default
, kube-public
, kube-system
, openshift
, openshift-infra
, openshift-node
및 openshift.io/run-level
레이블이 0
또는 1
로 설정된 기타 시스템 생성 프로젝트입니다. Pod 보안 승인, 보안 컨텍스트 제약 조건, 클러스터 리소스 할당량 및 이미지 참조 확인과 같은 승인 플러그인에 의존하는 기능은 높은 권한 있는 프로젝트에서 작동하지 않습니다.
6.6.1. 이미지 스트림에 대한 정보 얻기
이미지 스트림에 대한 일반 정보와 해당 이미지 스트림이 가리키는 모든 태그에 대한 자세한 정보를 얻을 수 있습니다.
프로세스
이미지 스트림에 대한 일반 정보와 해당 이미지 스트림이 가리키는 모든 태그에 대한 자세한 정보를 얻으려면 다음 명령을 입력합니다.
$ oc describe is/<image-name>
예를 들면 다음과 같습니다.
$ oc describe is/python
출력 예
Name: python Namespace: default Created: About a minute ago Labels: <none> Annotations: openshift.io/image.dockerRepositoryCheck=2017-10-02T17:05:11Z Docker Pull Spec: docker-registry.default.svc:5000/default/python Image Lookup: local=false Unique Images: 1 Tags: 1 3.5 tagged from centos/python-35-centos7 * centos/python-35-centos7@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 About a minute ago
특정 이미지 스트림 태그에 대한 사용 가능한 모든 정보를 얻으려면 다음 명령을 입력합니다.
$ oc describe istag/<image-stream>:<tag-name>
예를 들면 다음과 같습니다.
$ oc describe istag/python:latest
출력 예
Image Name: sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 Docker Image: centos/python-35-centos7@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 Name: sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 Created: 2 minutes ago Image Size: 251.2 MB (first layer 2.898 MB, last binary layer 72.26 MB) Image Created: 2 weeks ago Author: <none> Arch: amd64 Entrypoint: container-entrypoint Command: /bin/sh -c $STI_SCRIPTS_PATH/usage Working Dir: /opt/app-root/src User: 1001 Exposes Ports: 8080/tcp Docker Labels: build-date=20170801
참고표시된 것보다 더 많은 정보가 출력됩니다.
다음 명령을 입력하여 이미지 스트림 태그가 지원하는 아키텍처 또는 운영 체제를 확인합니다.
$ oc get istag <image-stream-tag> -ojsonpath="{range .image.dockerImageManifests[*]}{.os}/{.architecture}{'\n'}{end}"
예를 들면 다음과 같습니다.
$ oc get istag busybox:latest -ojsonpath="{range .image.dockerImageManifests[*]}{.os}/{.architecture}{'\n'}{end}"
출력 예
linux/amd64 linux/arm linux/arm64 linux/386 linux/mips64le linux/ppc64le linux/riscv64 linux/s390x
6.6.2. 이미지 스트림에 태그 추가
이미지 스트림에 태그를 더 추가할 수 있습니다.
프로세스
‘oc tag’ 명령을 사용하여 기존 태그 중 하나를 가리키는 태그를 추가합니다.
$ oc tag <image-name:tag1> <image-name:tag2>
예를 들면 다음과 같습니다.
$ oc tag python:3.5 python:latest
출력 예
Tag python:latest set to python@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25.
이미지 스트림에 두 개의 태그 즉, 외부 컨테이너 이미지를 가리키는 하나의 태그(
3.5
)와 첫 번째 태그를 기반으로 생성되어 동일한 이미지를 가리키는 다른 태그(latest
)가 있는지 확인합니다.$ oc describe is/python
출력 예
Name: python Namespace: default Created: 5 minutes ago Labels: <none> Annotations: openshift.io/image.dockerRepositoryCheck=2017-10-02T17:05:11Z Docker Pull Spec: docker-registry.default.svc:5000/default/python Image Lookup: local=false Unique Images: 1 Tags: 2 latest tagged from python@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 * centos/python-35-centos7@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 About a minute ago 3.5 tagged from centos/python-35-centos7 * centos/python-35-centos7@sha256:49c18358df82f4577386404991c51a9559f243e0b1bdc366df25 5 minutes ago
6.6.3. 외부 이미지에 대해 태그 추가
외부 이미지에 대해 태그를 추가할 수 있습니다.
프로세스
모든 태그 관련 작업에
oc tag
명령을 사용하여 내부 또는 외부 이미지를 가리키는 태그를 추가합니다.$ oc tag <repository/image> <image-name:tag>
예를 들어 이 명령은
python
이미지 스트림에서docker.io/python:3.6.0
이미지를3.6
태그에 매핑합니다.$ oc tag docker.io/python:3.6.0 python:3.6
출력 예
Tag python:3.6 set to docker.io/python:3.6.0.
외부 이미지에 보안이 설정되어 있으면 해당 레지스트리에 액세스하는 데 사용할 인증 정보가 포함된 시크릿을 생성해야 합니다.
6.6.4. 이미지 스트림 태그 업데이트
이미지 스트림의 다른 태그를 반영하도록 태그를 업데이트할 수 있습니다.
프로세스
태그를 업데이트합니다.
$ oc tag <image-name:tag> <image-name:latest>
예를 들어 다음에서는 이미지 스트림의
3.6
태그를 반영하도록latest
태그를 업데이트합니다.$ oc tag python:3.6 python:latest
출력 예
Tag python:latest set to python@sha256:438208801c4806548460b27bd1fbcb7bb188273d13871ab43f.
6.6.5. 이미지 스트림 태그 제거
이미지 스트림에서 이전 태그를 제거할 수 있습니다.
프로세스
이미지 스트림에서 이전 태그를 제거합니다.
$ oc tag -d <image-name:tag>
예를 들면 다음과 같습니다.
$ oc tag -d python:3.6
출력 예
Deleted tag default/python:3.6
6.6.6. 주기적으로 이미지 스트림 태그 가져오기 구성
외부 컨테이너 이미지 레지스트리로 작업하는 경우 예를 들어 최신 보안 업데이트를 받기 위해 이미지를 정기적으로 다시 가져오려면 --scheduled
플래그를 사용할 수 있습니다.
프로세스
이미지 가져오기를 스케줄링합니다.
$ oc tag <repository/image> <image-name:tag> --scheduled
예를 들면 다음과 같습니다.
$ oc tag docker.io/python:3.6.0 python:3.6 --scheduled
출력 예
Tag python:3.6 set to import docker.io/python:3.6.0 periodically.
이 명령을 사용하면 AWS의 Red Hat OpenShift Service가 이 특정 이미지 스트림 태그를 정기적으로 업데이트합니다. 이 기간은 기본적으로 15분으로 설정되는 클러스터 전체 설정입니다.
정기 점검을 없애고 위 명령을 다시 실행하되
--scheduled
플래그를 생략합니다. 이렇게 하면 동작이 기본값으로 재설정됩니다.$ oc tag <repositiory/image> <image-name:tag>