6.7. 이미지 및 이미지 스트림 가져오기 및 작업


다음 섹션에서는 이미지 스트림을 가져오고 작업하는 방법을 설명합니다.

6.7.1. 개인 레지스트리에서 이미지 및 이미지 스트림 가져 오기

인증이 필요한 개인 이미지 레지스트리에서 태그 및 이미지 메타 데이터를 가져 오도록 이미지 스트림을 구성할 수 있습니다. 이 절차는 Cluster Samples Operator가 콘텐츠를 registry.redhat.io 이외의 항목에서 가져오는 데 사용하는 레지스트리를 변경하는 경우에 적용됩니다.

참고

안전하지 않거나 보안된 레지스트리에서 가져올 때 시크릿에 정의 된 레지스트리 URL에는 :80 포트 접미사가 포함되어야 합니다. 그렇지 않으면 레지스트리에서 가져 오려고 할 때 시크릿을 사용할 수 없습니다.

프로세스

  1. 다음 명령을 입력하여 인증 정보를 저장하는 데 사용되는secret 개체를 만들어야 합니다.

    $ oc create secret generic <secret_name> --from-file=.dockerconfigjson=<file_absolute_path> --type=kubernetes.io/dockerconfigjson
  2. 시크릿을 구성한 후 새 이미지 스트림을 생성하거나 oc import-image 명령을 입력합니다.

    $ oc import-image <imagestreamtag> --from=<image> --confirm

    가져오기 프로세스 중에 AWS의 Red Hat OpenShift Service는 시크릿을 선택하여 원격 당사자에게 제공합니다.

6.7.1.1. Pod에서 다른 보안 레지스트리의 이미지를 참조하도록 허용

Docker 클라이언트의 .dockercfg $HOME/.docker/config.json 파일은 이전에 보안 또는 비보안 레지스트리에 로그인한 적이 있는 경우 인증 정보를 저장하는 Docker 인증 정보 파일입니다.

OpenShift 이미지 레지스트리가 아닌 보안 컨테이너 이미지를 가져오려면 Docker 인증 정보에서 풀 시크릿을 생성하여 서비스 계정에 추가해야 합니다.

Docker 인증 정보 파일과 연결된 풀 암호에는 각각 고유한 인증 정보 세트가 있는 동일한 레지스트리에 대한 여러 참조가 포함될 수 있습니다.

config.json 파일 예

{
   "auths":{
      "cloud.openshift.com":{
         "auth":"b3Blb=",
         "email":"you@example.com"
      },
      "quay.io":{
         "auth":"b3Blb=",
         "email":"you@example.com"
      },
      "quay.io/repository-main":{
         "auth":"b3Blb=",
         "email":"you@example.com"
      }
   }
}

pull secret의 예

apiVersion: v1
data:
  .dockerconfigjson: ewogICAiYXV0aHMiOnsKICAgICAgIm0iOnsKICAgICAgIsKICAgICAgICAgImF1dGgiOiJiM0JsYj0iLAogICAgICAgICAiZW1haWwiOiJ5b3VAZXhhbXBsZS5jb20iCiAgICAgIH0KICAgfQp9Cg==
kind: Secret
metadata:
  creationTimestamp: "2021-09-09T19:10:11Z"
  name: pull-secret
  namespace: default
  resourceVersion: "37676"
  uid: e2851531-01bc-48ba-878c-de96cfe31020
type: Opaque

절차

  • 보안 레지스트리의 .dockercfg 파일이 이미 있는 경우 다음을 실행하여 해당 파일에서 시크릿을 생성할 수 있습니다.

    $ oc create secret generic <pull_secret_name> \
        --from-file=.dockercfg=<path/to/.dockercfg> \
        --type=kubernetes.io/dockercfg
  • $HOME/.docker/config.json 파일이 있는 경우 다음을 실행합니다.

    $ oc create secret generic <pull_secret_name> \
        --from-file=.dockerconfigjson=<path/to/.docker/config.json> \
        --type=kubernetes.io/dockerconfigjson
  • 보안 레지스트리의 Docker 인증 정보 파일이 아직 없는 경우 다음을 실행하여 시크릿을 생성할 수 있습니다.

    $ oc create secret docker-registry <pull_secret_name> \
        --docker-server=<registry_server> \
        --docker-username=<user_name> \
        --docker-password=<password> \
        --docker-email=<email>
  • Pod의 이미지 가져오기에 시크릿을 사용하려면 서비스 계정에 이 시크릿을 추가해야 합니다. 이 예제의 서비스 계정 이름은 Pod에서 사용하는 서비스 계정 이름과 일치해야 합니다. default는 기본 서비스 계정입니다.

    $ oc secrets link default <pull_secret_name> --for=pull

6.7.2. 매니페스트 목록으로 작업

--import-mode 플래그를 추가하여 oc import-image 또는 oc tag CLI 명령을 사용할 때 매니페스트 목록의 단일 하위 매니페스트 또는 모든 매니페스트를 가져올 수 있습니다.

아래 명령을 참조하여 단일 하위 영구 또는 다중 아키텍처 이미지를 포함하는 이미지 스트림을 생성합니다.

프로세스

  • 다중 아키텍처 이미지가 포함된 이미지 스트림을 생성하고 다음 명령을 입력하여 가져오기 모드를 PreserveOriginal 로 설정합니다.

    $ oc import-image <multiarch-image-stream-tag>  --from=<registry>/<project_name>/<image-name> \
    --import-mode='PreserveOriginal' --reference-policy=local --confirm

    출력 예

    ---
    Arch:           <none>
    Manifests:      linux/amd64     sha256:6e325b86566fafd3c4683a05a219c30c421fbccbf8d87ab9d20d4ec1131c3451
                    linux/arm64     sha256:d8fad562ffa75b96212c4a6dc81faf327d67714ed85475bf642729703a2b5bf6
                    linux/ppc64le   sha256:7b7e25338e40d8bdeb1b28e37fef5e64f0afd412530b257f5b02b30851f416e1
    ---

  • 또는 다음 명령을 입력하여 Legacy 가져오기 모드로 이미지를 가져오십시오. 이 모드에서는 매니페스트 목록을 삭제하고 단일 하위 명령을 가져옵니다.

    $ oc import-image <multiarch-image-stream-tag>  --from=<registry>/<project_name>/<image-name> \
    --import-mode='Legacy' --confirm
    참고

    --import-mode= 기본값은 Legacy 입니다. 이 값을 제외하거나 Legacy 또는 PreserveOriginal 를 지정하지 않으면 단일 하위 매니페스트를 가져옵니다. 유효하지 않은 가져오기 모드에서는 다음 오류를 반환합니다: error: valid ImportMode values are Legacy or PreserveOriginal.

제한

매니페스트 목록으로 작업하는 데는 다음과 같은 제한 사항이 있습니다.

  • 경우에 따라 사용자가 하위 매니페스트를 직접 사용하려는 경우도 있습니다. oc adm prune images 가 실행되거나 CronJob pruner가 실행되는 경우 하위 영구 목록이 사용되는 시기를 감지할 수 없습니다. 결과적으로 oc adm prune images 또는 CronJob pruner를 사용하는 관리자는 하위 매니페스트 목록을 포함하여 전체 매니페스트 목록을 삭제할 수 있습니다.

    이러한 제한을 방지하려면 매니페스트 목록을 태그 또는 다이제스트로 대신 사용할 수 있습니다.

6.7.2.1. 주기적으로 매니페스트 목록 가져오기 구성

매니페스트 목록을 정기적으로 다시 가져오려면 --scheduled 플래그를 사용하면 됩니다.

프로세스

  • 다음 명령을 입력하여 매니페스트 목록을 주기적으로 업데이트하도록 이미지 스트림을 설정합니다.

    $ oc import-image <multiarch-image-stream-tag>  --from=<registry>/<project_name>/<image-name> \
    --import-mode='PreserveOriginal' --scheduled=true

6.7.2.2. 매니페스트 목록을 가져올 때 SSL/TSL 구성

매니페스트 목록을 가져올 때 SSL/TSL을 구성하려면 --insecure 플래그를 사용할 수 있습니다.

프로세스

  • 매니페스트 목록을 가져오려면 SSL/TSL 확인을 건너뛰도록 --insecure=true 를 설정합니다. 예를 들면 다음과 같습니다.

    $ oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name> \
    --import-mode='PreserveOriginal' --insecure=true

6.7.3. --import-mode의 아키텍처 지정

--import-mode= 플래그를 제외하거나 포함하여 멀티 아키텍처와 단일 아키텍처 간에 가져온 이미지 스트림을 스왑할 수 있습니다.

프로세스

  • 다음 명령을 실행하여 --import-mode= 플래그를 제외하여 다중 아키텍처에서 단일 아키텍처로 이미지 스트림을 업데이트합니다.

    $ oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name>
  • 다음 명령을 실행하여 단일 아키텍처에서 다중 아키텍처로 이미지 스트림을 업데이트합니다.

    $ oc import-image <multiarch-image-stream-tag>  --from=<registry>/<project_name>/<image-name> \
    --import-mode='PreserveOriginal'

6.7.4. --import-mode의 구성 필드

다음 표에서는 --import-mode= 플래그에 사용할 수 있는 옵션을 설명합니다.

매개변수설명

Legacy

--import-mode 의 기본 옵션입니다. 지정하면 매니페스트 목록이 삭제되고 단일 하위 매니페스트가 가져옵니다. 플랫폼은 다음과 같은 우선 순위 순서로 선택됩니다.

  1. 태그 주석
  2. 컨트롤 플레인 아키텍처
  3. Linux/AMD64
  4. 목록의 첫 번째 매니페스트

PreserveOriginal

지정하면 원래 매니페스트가 유지됩니다. 매니페스트 목록의 경우 매니페스트 목록과 모든 하위 매니페스트를 가져옵니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.