6.7. 이미지 스트림으로 작업
다음 섹션에서는 이미지 스트림 및 이미지 스트림 태그를 사용하는 방법에 대해 설명합니다.
기본 프로젝트에서 워크로드를 실행하거나 기본 프로젝트에 대한 액세스를 공유하지 마세요. 기본 프로젝트는 핵심 클러스터 구성 요소를 실행하기 위해 예약되어 있습니다.
다음 기본 프로젝트는 높은 권한이 있는 것으로 간주됩니다. default, kube-public, kube-system, openshift, openshift-infra, openshift-node 및 openshift.io/run-level 레이블이 0 또는 1 로 설정된 기타 시스템 생성 프로젝트입니다. Pod 보안 승인, 보안 컨텍스트 제약 조건, 클러스터 리소스 할당량 및 이미지 참조 확인과 같은 승인 플러그인에 의존하는 기능은 높은 권한 있는 프로젝트에서 작동하지 않습니다.
6.7.1. 이미지 스트림에 대한 정보 얻기 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform에서 이미지 스트림을 효율적으로 관리하고 모니터링하려면 이미지 버전 정보를 검색하세요. 이미지 스트림에 대한 일반 정보와 해당 스트림이 가리키는 모든 태그에 대한 자세한 정보를 얻을 수 있으므로 배포된 애플리케이션이 올바른 이미지 버전을 사용하도록 보장할 수 있습니다.
프로세스
이미지 스트림에 대한 일반 정보와 해당 이미지 스트림이 가리키는 모든 태그에 대한 자세한 정보를 얻으려면 다음 명령을 입력합니다.
$ 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.7.2. 이미지 스트림에 태그 추가 링크 복사링크가 클립보드에 복사되었습니다!
컨테이너 이미지의 특정 버전을 정확하게 관리하고 추적하려면 OpenShift Container Platform 내 이미지 스트림에 태그를 추가하세요. 이를 통해 환경 전체에서 안정적인 참조 및 배포가 보장됩니다.
프로세스
‘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.7.3. 외부 이미지에 대해 태그 추가 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 리소스가 외부 레지스트리에서 가져온 컨테이너 이미지를 추적하고 사용할 수 있도록 하려면 해당 이미지 스트림에 태그를 추가하십시오. 이 작업을 통해 외부 이미지 콘텐츠가 클러스터의 로컬 이미지 관리 시스템에 안전하게 통합됩니다.
프로세스
모든 태그 관련 작업에
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.7.4. 이미지 스트림 태그 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
배포 정의의 유연성과 일관성을 유지하려면 이미지 스트림 태그를 OpenShift Container Platform의 다른 태그로 업데이트하십시오. 구체적으로, 이미지 스트림에서 다른 태그를 반영하도록 태그를 업데이트할 수 있으며, 이는 이미지 버전을 효과적으로 관리하는 데 필수적입니다.
프로세스
태그를 업데이트합니다.
$ 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.7.5. 이미지 스트림 태그 제거 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 내에서 이미지 기록을 제어하고 관리를 간소화하려면 이미지 스트림에서 오래된 태그를 제거할 수 있습니다. 이 작업을 통해 리소스가 현재 필요한 이미지 참조만 추적하도록 할 수 있습니다.
프로세스
이미지 스트림에서 이전 태그를 제거합니다.
$ oc tag -d <image-name:tag>예를 들면 다음과 같습니다.
$ oc tag -d python:3.6출력 예
Deleted tag default/python:3.6
Cluster Samples Operator가 더 이상 사용되지 않는 이미지 스트림 태그를 처리하는 방법에 대한 자세한 내용은 Cluster Samples Operator에서 더 이상 사용되지 않는 이미지 스트림 태그 제거를 참조하십시오.
6.7.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.이 명령은 OpenShift Container Platform이 특정 이미지 스트림 태그를 주기적으로 업데이트하도록 합니다. 이 기간은 기본적으로 15분으로 설정되는 클러스터 전체 설정입니다.
정기 점검을 없애고 위 명령을 다시 실행하되
--scheduled플래그를 생략합니다. 이렇게 하면 동작이 기본값으로 재설정됩니다.$ oc tag <repositiory/image> <image-name:tag>