13.7. 태그 및 이미지 메타데이터 가져오기
외부 컨테이너 이미지 레지스트리의 이미지 리포지토리에서 태그 및 이미지 메타데이터를 가져오도록 이미지 스트림을 구성할 수 있습니다. 몇 가지 다른 방법을 사용하여 이 작업을 수행할 수 있습니다.
--from
옵션을 사용하여oc import-image
명령을 사용하여 태그 및 이미지 정보를 수동으로 가져올 수 있습니다.$ oc import-image <image_stream_name>[:<tag>] --from=<docker_image_repo> --confirm
예를 들면 다음과 같습니다.
$ oc import-image my-ruby --from=docker.io/openshift/ruby-20-centos7 --confirm The import completed successfully. Name: my-ruby Created: Less than a second ago Labels: <none> Annotations: openshift.io/image.dockerRepositoryCheck=2016-05-06T20:59:30Z Docker Pull Spec: 172.30.94.234:5000/demo-project/my-ruby Tag Spec Created PullSpec Image latest docker.io/openshift/ruby-20-centos7 Less than a second ago docker.io/openshift/ruby-20-centos7@sha256:772c5bf9b2d1e8... <same>
--all
플래그를 추가하여 latest 대신 이미지의 모든 태그를 가져올 수도 있습니다.OpenShift Container Platform의 대부분의 오브젝트와 마찬가지로 JSON 또는 YAML 정의를 파일에 작성하고 저장한 다음 CLI를 사용하여 오브젝트를 생성할 수도 있습니다.
spec.dockerImageRepository
필드를 이미지의 Docker 가져오기 사양으로 설정합니다.apiVersion: "v1" kind: "ImageStream" metadata: name: "my-ruby" spec: dockerImageRepository: "docker.io/openshift/ruby-20-centos7"
그런 다음 오브젝트를 생성합니다.
$ oc create -f <file>
외부 Docker 레지스트리에서 이미지를 참조하는 이미지 스트림을 생성할 때 OpenShift Container Platform은 짧은 시간 내에 외부 레지스트리와 통신하여 이미지에 대한 최신 정보를 가져옵니다.
태그 및 이미지 메타데이터가 동기화되면 이미지 스트림 오브젝트는 다음과 유사합니다.
apiVersion: v1 kind: ImageStream metadata: name: my-ruby namespace: demo-project selflink: /oapi/v1/namespaces/demo-project/imagestreams/my-ruby uid: 5b9bd745-13d2-11e6-9a86-0ada84b8265d resourceVersion: '4699413' generation: 2 creationTimestamp: '2016-05-06T21:34:48Z' annotations: openshift.io/image.dockerRepositoryCheck: '2016-05-06T21:34:48Z' spec: dockerImageRepository: docker.io/openshift/ruby-20-centos7 tags: - name: latest annotations: null from: kind: DockerImage name: 'docker.io/openshift/ruby-20-centos7:latest' generation: 2 importPolicy: { } status: dockerImageRepository: '172.30.94.234:5000/demo-project/my-ruby' tags: - tag: latest items: - created: '2016-05-06T21:34:48Z' dockerImageReference: 'docker.io/openshift/ruby-20-centos7@sha256:772c5bf9b2d1e8e80742ed75aab05820419dc4532fa6d7ad8a1efddda5493dc3' image: 'sha256:772c5bf9b2d1e8e80742ed75aab05820419dc4532fa6d7ad8a1efddda5493dc3' generation: 2
Add Tags to Image Streams에 언급된 대로 --scheduled=true
플래그를 oc tag
명령과 함께 설정하여 예약된 간격으로 외부 레지스트리를 쿼리하도록 태그 를 설정할 수 있습니다.
또는 태그 정의에서 importPolicy.scheduled
를 true 로 설정할 수도 있습니다.
apiVersion: v1 kind: ImageStream metadata: name: ruby spec: tags: - from: kind: DockerImage name: openshift/ruby-20-centos7 name: latest importPolicy: scheduled: true
13.7.1. 비보안 레지스트리에서 이미지 가져오기
자체 서명된 인증서로 서명된 인증서와 같은 비보안 이미지 레지스트리에서 태그 및 이미지 메타데이터를 가져오거나 HTTPS 대신 일반 HTTP를 사용하도록 이미지 스트림을 구성할 수 있습니다.
이를 구성하려면 openshift.io/image.insecureRepository
주석을 추가하고 true 로 설정합니다. 이 설정은 레지스트리에 연결할 때 인증서 검증을 바이패스합니다.
kind: ImageStream
apiVersion: v1
metadata:
name: ruby
annotations:
openshift.io/image.insecureRepository: "true" 1
spec:
dockerImageRepository: my.repo.com:5000/myimage
- 1
openshift.io/image.insecureRepository
주석을 true로 설정합니다.
이 옵션은 통합 레지스트리에 제공할 때 이미지 스트림에 태그된 외부 이미지에 대해 비보안 전송으로 대체하도록 지시합니다. 가능한 경우 istag
를 비보안으로 표시 하여 이 위험을 피하십시오.
13.7.1.1. 이미지 스트림 태그 정책
13.7.1.1.1. 비보안 태그 가져오기 정책
위의 주석은 특정 이미지 스트림
의 모든 이미지 및 태그에 적용됩니다. 세분화된 제어의 경우 정책을 istags
에 설정할 수 있습니다. 태그 정의에서 importPolicy.insecure
를 true
로 설정하여 이 태그 아래의 이미지에서만 비보안 전송으로 대체를 허용합니다.
특정 istag
의 이미지의 비보안 전송으로 대체가 활성화되어 있습니다. 이미지 스트림에 insecure로 주석이 달거나 istag
에 비보안 가져오기 정책이 있는 경우도 있습니다. false
로 설정된 importPolicy.insecure
는 이미지 스트림 주석을 덮어쓸 수 없습니다.
13.7.1.1.2. 참조 정책
참조 정책을 사용하면 이 이미지 스트림 태그를 참조하는 리소스가 이미지를 가져오는 위치를 지정할 수 있습니다. 외부 레지스트리에서 가져온 이미지에만 적용됩니다. 다음 두 가지 옵션을 선택할 수 있습니다. 로컬
및 소스
.
Source
정책은 클라이언트에 이미지의 소스 레지스트리에서 직접 가져오도록 지시합니다. 클러스터에서 이미지를 관리하지 않는 한 통합 레지스트리는 관련이 없습니다. (이 이미지는 외부 이미지가 아닙니다.) 이는 기본 정책입니다.
로컬
정책은 클라이언트가 항상 통합 레지스트리에서 가져오도록 지시합니다. 이는 Docker 데몬 설정을 수정하지 않고 외부 비보안 레지스트리에서 가져오려는 경우 유용합니다.
이 정책은 이미지 스트림 태그 사용에만 영향을 미칩니다. 외부 레지스트리 위치를 사용하여 이미지를 직접 참조하거나 가져오는 구성 요소 또는 작업은 내부 레지스트리로 리디렉션되지 않습니다.
레지스트리의 pull-through 기능은 클라이언트에 원격 이미지를 제공합니다. 기본적으로 이 기능은 로컬 참조 정책을 사용하려면 활성화해야 합니다. 또한 나중에 더 빠르게 액세스할 수 있도록 기본적으로 모든 Blob이 미러링됩니다.Additionally, by default, all the blobs are mirrored for faster access later.
이미지 스트림 태그 사양에서 정책을 referencePolicy.type
으로 설정할 수 있습니다.
로컬 참조 정책이 포함된 보안 태그의 예
kind: ImageStream apiVersion: v1 metadata: name: ruby tags: - from: kind: DockerImage name: my.repo.com:5000/myimage name: mytag importPolicy: insecure: true 1 referencePolicy: type: Local 2