3.5. oc-mirror 플러그인을 사용하여 연결이 끊긴 설치의 이미지 미러링


개인 레지스트리에 있는 OpenShift Container Platform 컨테이너 이미지의 미러링된 세트에서 클러스터를 설치하면 직접적인 인터넷 연결 없이 제한된 네트워크에서 클러스터를 실행할 수 있습니다. 클러스터를 실행하는 동안 이 레지스트리는 항상 실행되어야 합니다. 자세한 내용은 필수 조건 섹션을 참조하세요.

oc-mirror OpenShift CLI( oc ) 플러그인을 사용하면 완전히 또는 부분적으로 연결이 끊긴 환경에서 미러 레지스트리로 이미지를 미러링할 수 있습니다. 공식 Red Hat 레지스트리에서 필요한 이미지를 다운로드하려면 인터넷에 연결된 시스템에서 oc-mirror를 실행해야 합니다.

중요

oc-mirror v1 플러그인은 더 이상 사용되지 않습니다. 기본 미러링 방법은 향후 릴리스에서 oc-mirror v2 플러그인으로 변경되며, oc-mirror v1 플러그인을 계속 사용하려면 --v1 플래그를 지정해야 합니다. 지속적인 지원과 개선을 위해 oc-mirror v2 플러그인 으로 전환하세요.

3.5.1. oc-mirror 플러그인에 대하여

oc-mirror OpenShift CLI( oc ) 플러그인을 사용하면 단일 도구를 사용하여 모든 필수 OpenShift Container Platform 콘텐츠와 기타 이미지를 미러 레지스트리로 미러링할 수 있습니다. 다음과 같은 기능을 제공합니다.

  • OpenShift Container Platform 릴리스, Operator, helm 차트 및 기타 이미지를 미러링하는 중앙 집중식 방법을 제공합니다.
  • OpenShift Container Platform 및 Operator의 업데이트 경로를 유지 관리합니다.
  • 선언적 이미지 세트 구성 파일을 사용하여 클러스터에 필요한 OpenShift Container Platform 릴리스, Operator 및 이미지만 포함합니다.
  • 증분 미러링을 수행하여 향후 이미지 세트의 크기를 줄입니다.
  • 이전 실행 이후 이미지 세트 구성에서 제외된 대상 미러 레지스트리에서 이미지를 정리합니다.
  • 선택적으로 OpenShift Update Service (OSUS) 사용에 대한 지원 아티팩트를 생성합니다.

oc-mirror 플러그인을 사용하면 이미지 세트 구성 파일에서 미러링할 콘텐츠를 지정합니다. 이 YAML 파일에서는 클러스터에 필요한 OpenShift Container Platform 릴리스와 Operator만 포함하도록 구성을 미세 조정할 수 있습니다. 이렇게 하면 다운로드 및 전송에 필요한 데이터 양이 줄어듭니다. oc-mirror 플러그인은 임의의 헬름 차트와 추가 컨테이너 이미지를 미러링하여 사용자가 작업 부하를 미러 레지스트리에 원활하게 동기화할 수 있도록 지원합니다.

oc-mirror 플러그인을 처음 실행하면 연결이 끊긴 클러스터 설치나 업데이트를 수행하는 데 필요한 콘텐츠로 미러 레지스트리가 채워집니다. 연결이 끊긴 클러스터가 업데이트를 계속 받으려면 미러 레지스트리를 계속 업데이트해야 합니다. 미러 레지스트리를 업데이트하려면 처음 실행했을 때와 동일한 구성을 사용하여 oc-mirror 플러그인을 실행합니다. oc-mirror 플러그인은 스토리지 백엔드의 메타데이터를 참조하고 도구를 마지막으로 실행한 이후에 릴리스된 내용만 다운로드합니다. 이는 OpenShift Container Platform 및 Operator의 업데이트 경로를 제공하고 필요에 따라 종속성 확인을 수행합니다.

3.5.1.1. 고급 워크플로

다음 단계에서는 oc-mirror 플러그인을 사용하여 이미지를 미러 레지스트리로 미러링하는 방법에 대한 고급 워크플로를 설명합니다.

  1. 이미지 세트 구성 파일을 생성합니다.
  2. 다음 방법 중 하나를 사용하여 이미지 세트를 대상 미러 레지스트리로 미러링합니다.

    • 이미지 세트를 대상 미러 레지스트리에 직접 미러링합니다.
    • 이미지를 디스크에 미러링하고 대상 환경으로 설정된 이미지를 전송한 다음 대상 미러 레지스트리에 설정된 이미지를 업로드합니다.
  3. oc-mirror 플러그인에서 생성된 리소스를 사용하도록 클러스터를 구성합니다.
  4. 필요에 따라 이 단계를 반복하여 대상 미러 레지스트리를 업데이트합니다.
중요

oc-mirror CLI 플러그인을 사용하여 미러 레지스트리를 채우는 경우, 대상 미러 레지스트리에 대한 추가 업데이트는 oc-mirror 플러그인을 사용하여 수행해야 합니다.

3.5.2. oc-mirror 플러그인 호환성 및 지원

oc-mirror 플러그인은 OpenShift Container Platform 버전 4.12 이상에 대한 OpenShift Container Platform 페이로드 이미지와 Operator 카탈로그 미러링을 지원합니다.

참고

aarch64,ppc64les390x 아키텍처에서 oc-mirror 플러그인은 OpenShift Container Platform 버전 4.14 이상에서만 지원됩니다.

미러링해야 하는 OpenShift Container Platform 버전에 관계없이 oc-mirror 플러그인의 최신 버전을 사용하세요.

3.5.3. 미러 레지스트리 정보

OpenShift Container Platform 설치 및 후속 제품 업데이트에 필요한 이미지를 Red Hat Quay와 같이 Docker v2-2를 지원하는 컨테이너 미러 레지스트리에 미러링할 수 있습니다. 대규모 컨테이너 레지스트리에 액세스할 수 없는 경우 OpenShift Container Platform 구독에 포함된 소규모 컨테이너 레지스트리인 Red Hat OpenShift용 미러 레지스트리를 사용할 수 있습니다.

선택한 레지스트리에 관계없이 인터넷상의 Red Hat 호스팅 사이트의 콘텐츠를 격리된 이미지 레지스트리로 미러링하는 절차는 동일합니다. 콘텐츠를 미러링한 후 미러 레지스트리에서 이 콘텐츠를 검색하도록 각 클러스터를 설정합니다.

중요

OpenShift 이미지 레지스트리는 미러링 프로세스 중에 필요한 태그 없이 푸시를 지원하지 않으므로 대상 레지스트리로 사용할 수 없습니다.

Red Hat OpenShift용 미러 레지스트리가 아닌 컨테이너 레지스트리를 선택하는 경우, 프로비저닝하는 클러스터의 모든 머신에서 접근할 수 있어야 합니다. 레지스트리에 연결할 수 없는 경우 설치, 업데이트 또는 워크로드 재배치와 같은 일반 작업이 실패할 수 있습니다. 따라서 고가용성 방식으로 미러 레지스트리를 실행해야하며 미러 레지스트리는 최소한 OpenShift Container Platform 클러스터의 프로덕션 환경의 가용성조건에 일치해야 합니다.

미러 레지스트리를 OpenShift Container Platform 이미지로 채우면 다음 두 가지 시나리오를 수행할 수 있습니다. 호스트가 인터넷과 미러 레지스트리에 모두 액세스할 수 있지만 클러스터 노드에 액세스 할 수 없는 경우 해당 머신의 콘텐츠를 직접 미러링할 수 있습니다. 이 프로세스를 connected mirroring(미러링 연결)이라고 합니다. 그러한 호스트가 없는 경우 이미지를 파일 시스템에 미러링한 다음 해당 호스트 또는 이동식 미디어를 제한된 환경에 배치해야 합니다. 이 프로세스를 미러링 연결 해제라고 합니다.

미러링된 레지스트리의 경우 가져온 이미지의 소스를 보려면 CRI-O 로그의 Trying to access 로그 항목을 검토해야 합니다. 노드에서 crictl images 명령을 사용하는 등의 이미지 가져오기 소스를 보는 다른 방법은 미러링되지 않은 이미지 이름을 표시합니다.

참고

Red Hat은 OpenShift Container Platform에서 타사 레지스트리를 테스트하지 않습니다.

3.5.4. 사전 요구 사항

  • Red Hat Quay와 같이 OpenShift Container Platform 클러스터를 호스팅할 위치에 Docker v2-2를 지원하는 컨테이너 이미지 레지스트리가 있어야 합니다.

    참고

    Red Hat Quay를 사용하는 경우 oc-mirror 플러그인과 함께 버전 3.6 이상을 사용해야 합니다. Red Hat Quay에 대한 권한이 있는 경우 개념 증명 목적으로 Red Hat Quay를 배포하거나 Red Hat Quay Operator를 사용하는 방법 에 대한 설명서를 참조하세요. 레지스트리를 선택 및 설치하는 데 추가 지원이 필요한 경우 영업 담당자 또는 Red Hat 지원팀에 문의하십시오.

    컨테이너 이미지 레지스트리에 대한 기존 솔루션이 없는 경우 OpenShift Container Platform 구독자에게 Red Hat OpenShift의 미러 레지스트리가 제공됩니다. Red Hat OpenShift용 미러 레지스트리는 구독에 포함되어 있으며, 연결이 끊긴 설치 환경에서 OpenShift Container Platform의 필수 컨테이너 이미지를 미러링하는 데 사용할 수 있는 소규모 컨테이너 레지스트리입니다.

3.5.5. 미러 호스트 준비

oc-mirror 플러그인을 사용하여 이미지를 미러링하려면 먼저 플러그인을 설치하고 컨테이너 이미지 레지스트리 자격 증명 파일을 생성하여 Red Hat에서 미러로 미러링을 허용해야 합니다.

3.5.5.1. oc-mirror OpenShift CLI 플러그인 설치

연결이 끊긴 환경에서 이미지 세트를 관리하려면 oc-mirror OpenShift CLI 플러그인을 설치하세요.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다. 완전히 연결되지 않은 환경에서 이미지 세트를 미러링하는 경우 다음 사항을 확인하세요.

    • 인터넷 접속이 가능한 호스트에 oc-mirror 플러그인을 설치했습니다.
    • 연결이 끊긴 환경의 호스트는 대상 미러 레지스트리에 액세스할 수 있습니다.
  • oc-mirror를 사용하는 운영 체제에서 umask 매개변수를 0022 로 설정했습니다.
  • 사용 중인 RHEL 버전에 맞는 올바른 바이너리를 설치했습니다.

프로세스

  1. oc-mirror CLI 플러그인을 다운로드하세요:

    1. Red Hat Hybrid Cloud Console의 다운로드 페이지로 이동합니다.
    2. OpenShift 연결 설치 툴 섹션의 드롭다운 메뉴에서 OpenShift Client(oc) 미러 플러그인OS 유형 및 아키텍처 유형을 선택합니다.
    3. 다운로드를 클릭하여 파일을 저장하세요.
  2. 다음 명령을 실행하여 아카이브를 추출합니다.

    $ tar xvzf oc-mirror.tar.gz
    Copy to Clipboard Toggle word wrap
  3. 필요한 경우 다음 명령을 실행하여 플러그인 파일을 실행 가능하도록 업데이트합니다.

    $ chmod +x oc-mirror
    Copy to Clipboard Toggle word wrap
    참고

    oc-mirror 파일의 이름을 바꾸지 마십시오.

  4. 다음 명령을 실행하여 PATH (예: /usr/local/bin )에 파일을 넣어 oc-mirror CLI 플러그인을 설치합니다.

    $ sudo mv oc-mirror /usr/local/bin/.
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 oc-mirror 플러그인 v1이 성공적으로 설치되었는지 확인하세요.

    $ oc mirror help
    Copy to Clipboard Toggle word wrap

3.5.5.2. 이미지를 미러링할 수 있는 인증 정보 설정

Red Hat에서 미러로 이미지를 미러링할 수 있는 컨테이너 이미지 레지스트리 자격 증명 파일을 만듭니다.

주의

클러스터를 설치할 때 이 이미지 레지스트리 인증 정보 파일을 풀 시크릿(pull secret)으로 사용하지 마십시오. 클러스터를 설치할 때 이 파일을 지정하면 클러스터의 모든 시스템에 미러 레지스트리에 대한 쓰기 권한이 부여됩니다.

사전 요구 사항

  • 연결이 끊긴 환경에서 사용할 미러 레지스트리를 구성했습니다.
  • 미러 레지스트리에서 이미지를 미러링할 이미지 저장소 위치를 확인했습니다.
  • 이미지를 해당 이미지 저장소에 업로드할 수 있는 미러 레지스트리 계정을 제공하고 있습니다.
  • 미러 레지스트리에 대한 쓰기 권한이 있습니다.

프로세스

설치 호스트에서 다음 단계를 수행합니다.

  1. Red Hat OpenShift Cluster Manager에서 registry.redhat.io 풀 시크릿을 다운로드합니다.
  2. 다음 명령을 실행하여 JSON 형식으로 풀 시크릿의 사본을 만듭니다.

    $ cat ./pull-secret | jq . > <path>/<pull_secret_file_in_json> 
    1
    Copy to Clipboard Toggle word wrap
    1
    풀 시크릿을 저장할 폴더의 경로와 생성한 JSON 파일의 이름을 지정합니다.

    pull secret의 예

    {
      "auths": {
        "cloud.openshift.com": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "quay.io": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "registry.connect.redhat.com": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        },
        "registry.redhat.io": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        }
      }
    }
    Copy to Clipboard Toggle word wrap

  3. 파일을 ~/.docker/config.json 또는 $XDG_RUNTIME_DIR/containers/auth.json 으로 저장합니다.

    1. .docker 또는 $XDG_RUNTIME_DIR/containers 디렉터리가 없는 경우 다음 명령을 입력하여 만듭니다.

      $ mkdir -p <directory_name>
      Copy to Clipboard Toggle word wrap

      여기서 <directory_name>~/.docker 또는 $XDG_RUNTIME_DIR/containers 입니다.

    2. 다음 명령을 입력하여 풀 시크릿을 적절한 디렉터리에 복사합니다.

      $ cp <path>/<pull_secret_file_in_json> <directory_name>/<auth_file>
      Copy to Clipboard Toggle word wrap

      여기서 <directory_name>~/.docker 또는 $XDG_RUNTIME_DIR/containers 이며 <auth_file>config.json 또는 auth.json 입니다.

  4. 다음 명령을 실행하여 미러 레지스트리에 대한 base64로 인코딩된 사용자 이름과 비밀번호 또는 토큰을 생성합니다.

    $ echo -n '<user_name>:<password>' | base64 -w0 
    1
    Copy to Clipboard Toggle word wrap
    1
    <user_name><password>의 경우 레지스트리에 설정한 사용자 이름 및 암호를 지정합니다.

    출력 예

    BGVtbYk3ZHAtqXs=
    Copy to Clipboard Toggle word wrap

  5. JSON 파일을 편집하고 레지스트리를 설명하는 섹션을 추가합니다.

      "auths": {
        "<mirror_registry>": { 
    1
    
          "auth": "<credentials>", 
    2
    
          "email": "you@example.com"
        }
      },
    Copy to Clipboard Toggle word wrap
    1
    미러 레지스트리가 콘텐츠를 제공하는 데 사용하는 레지스트리 도메인 이름과 필요한 경우 포트를 지정합니다. 예: registry.example.com 또는 registry.example.com:8443
    2
    미러 레지스트리에 대한 base64로 인코딩된 사용자 이름과 비밀번호를 지정합니다.

    수정된 풀 시크릿 예시

    {
      "auths": {
        "registry.example.com": {
          "auth": "BGVtbYk3ZHAtqXs=",
          "email": "you@example.com"
        },
        "cloud.openshift.com": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "quay.io": {
          "auth": "b3BlbnNo...",
          "email": "you@example.com"
        },
        "registry.connect.redhat.com": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        },
        "registry.redhat.io": {
          "auth": "NTE3Njg5Nj...",
          "email": "you@example.com"
        }
      }
    }
    Copy to Clipboard Toggle word wrap

3.5.6. 이미지 세트 구성 생성

oc-mirror 플러그인을 사용하여 이미지 세트를 미러링하려면 먼저 이미지 세트 구성 파일을 만들어야 합니다. 이 이미지 세트 구성 파일은 oc-mirror 플러그인에 대한 기타 구성 설정과 함께 미러링할 OpenShift Container Platform 릴리스, 운영자 및 기타 이미지를 정의합니다.

이미지 세트 구성 파일에 스토리지 백엔드를 지정해야 합니다. 이 스토리지 백엔드는 로컬 디렉터리 또는 Docker v2-2 를 지원하는 레지스트리일 수 있습니다. oc-mirror 플러그인은 이미지 세트를 생성하는 동안 이 스토리지 백엔드에 메타데이터를 저장합니다.

중요

oc-mirror 플러그인에서 생성된 메타데이터를 삭제하거나 수정하지 마세요. 동일한 미러 레지스트리에 대해 oc-mirror 플러그인을 실행할 때마다 동일한 스토리지 백엔드를 사용해야 합니다.

사전 요구 사항

  • 컨테이너 이미지 레지스트리 인증 정보 파일이 생성되어 있습니다. 자세한 내용은 "이미지 미러링을 허용하는 자격 증명 구성"을 참조하세요.

프로세스

  1. oc mirror init 명령을 사용하여 이미지 세트 구성에 대한 템플릿을 생성하고 imageset-config.yaml 이라는 파일에 저장합니다.

    $ oc mirror init --registry <storage_backend> > imageset-config.yaml 
    1
    Copy to Clipboard Toggle word wrap
    1
    example.com/mirror/oc-mirror-metadata 와 같이 스토리지 백엔드의 위치를 지정합니다.
  2. 파일을 편집하고 필요에 따라 설정을 조정합니다.

    kind: ImageSetConfiguration
    apiVersion: mirror.openshift.io/v1alpha2
    archiveSize: 4                                                      
    1
    
    storageConfig:                                                      
    2
    
      registry:
        imageURL: example.com/mirror/oc-mirror-metadata                 
    3
    
        skipTLS: false
    mirror:
      platform:
        channels:
        - name: stable-4.19                                             
    4
    
          type: ocp
        graph: true                                                     
    5
    
      operators:
      - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19  
    6
    
        packages:
        - name: serverless-operator                                     
    7
    
          channels:
          - name: stable                                                
    8
    
      additionalImages:
      - name: registry.redhat.io/ubi9/ubi:latest                        
    9
    
      helm: {}
    Copy to Clipboard Toggle word wrap
    1
    archiveSize 를 추가하여 이미지 세트 내에서 각 파일의 최대 크기를 GiB 단위로 설정합니다.
    2
    이미지 세트 메타데이터를 저장할 백엔드 위치를 설정합니다. 이 위치는 레지스트리 또는 로컬 디렉터리일 수 있습니다. storageConfig 값을 지정해야 합니다.
    3
    스토리지 백엔드의 레지스트리 URL을 설정합니다.
    4
    채널을 설정하여 OpenShift Container Platform 이미지를 검색합니다.
    5
    그래프 추가: 그래프 데이터 이미지를 빌드하고 미러 레지스트리에 푸시하려면 true를 설정합니다. 그래프 데이터 이미지는 OpenShift Update Service(OSUS)를 생성하는 데 필요합니다. 그래프: true 필드는 UpdateService 사용자 정의 리소스 매니페스트도 생성합니다. oc 명령줄 인터페이스(CLI)는 UpdateService 사용자 정의 리소스 매니페스트를 사용하여 OSUS를 생성할 수 있습니다. 자세한 내용은 OpenShift 업데이트 서비스 정보를 참조하십시오.
    6
    Operator 카탈로그를 설정하여 OpenShift Container Platform 이미지를 검색합니다.
    7
    이미지 세트에 포함할 특정 Operator 패키지만 지정합니다. 이 필드를 제거하여 카탈로그의 모든 패키지를 검색합니다.
    8
    이미지 세트에 포함할 Operator 패키지의 특정 채널만 지정합니다. 해당 채널에서 번들을 사용하지 않더라도 항상 Operator 패키지의 기본 채널을 포함해야 합니다. 다음 명령을 실행하면 기본 채널을 찾을 수 있습니다: oc mirror list operators --catalog=<catalog_name> --package=<package_name> .
    9
    이미지 세트에 포함할 추가 이미지를 지정합니다.
    참고

    그래프: 트루 필드는 다른 미러링된 이미지와 함께 유비마이크로 이미지도 미러링합니다.

    OpenShift Container Platform Extended Update Support(EUS) 버전을 업그레이드할 때 현재 버전과 대상 버전 사이에 중간 버전이 필요할 수 있습니다. 예를 들어, 현재 버전이 4.14 이고 대상 버전이 4.16 인 경우 oc-mirror 플러그인 v1을 사용할 때 ImageSetConfiguration4.15.8 과 같은 버전을 포함해야 할 수도 있습니다.

    oc-mirror 플러그인 v1은 이를 항상 자동으로 감지하지 못할 수 있으므로 Cincinnati Graph 웹페이지에서 필요한 중간 버전을 확인하고 구성에 수동으로 추가하세요.

    전체 매개변수 목록은 "이미지 세트 구성 매개변수"를 참조하고, 다양한 미러링 사용 사례는 "이미지 세트 구성 예시"를 참조하세요.

  3. 업데이트된 파일을 저장합니다.

    이 이미지 세트 구성 파일은 컨텐츠를 미러링할 때 oc mirror 명령에 필요합니다.

3.5.7. 미러 레지스트리로 이미지 세트 미러링

oc-mirror CLI 플러그인을 사용하여 부분적으로 연결이 끊긴 환경 또는 완전히 연결이 끊긴 환경에서 미러 레지스트리에 이미지를 미러링할 수 있습니다.

이 절차에서는 이미 미러 레지스트리가 설정되어 있다고 가정합니다.

3.5.7.1. 부분적으로 연결이 끊긴 환경에서 이미지 세트 미러링

부분적으로 연결이 끊긴 환경에서는 대상 미러 레지스트리에 직접 설정된 이미지를 미러링할 수 있습니다.

3.5.7.1.1. 미러에서 미러로 미러링

oc-mirror 플러그인을 사용하면 이미지 세트를 생성하는 동안 접근 가능한 대상 미러 레지스트리에 이미지 세트를 직접 미러링할 수 있습니다.

이미지 세트 구성 파일에서 스토리지 백엔드를 지정해야 합니다. 이 스토리지 백엔드는 로컬 디렉터리 또는 Docker v2 레지스트리일 수 있습니다. oc-mirror 플러그인은 이미지 세트를 생성하는 동안 이 스토리지 백엔드에 메타데이터를 저장합니다.

중요

oc-mirror 플러그인에서 생성된 메타데이터를 삭제하거나 수정하지 마세요. 동일한 미러 레지스트리에 대해 oc-mirror 플러그인을 실행할 때마다 동일한 스토리지 백엔드를 사용해야 합니다.

사전 요구 사항

  • 필요한 컨테이너 이미지를 얻으려면 인터넷에 접속해야 합니다.
  • OpenShift CLI(oc)를 설치합니다.
  • oc-mirror CLI 플러그인을 설치했습니다.
  • 이미지 세트 구성 파일을 생성했습니다.

프로세스

  • oc mirror 명령을 실행하여 지정된 이미지 세트 구성의 이미지를 지정된 레지스트리로 미러링합니다.

    $ oc mirror --config=./<imageset-config.yaml> \
    1
    
      docker://registry.example:5000             
    2
    Copy to Clipboard Toggle word wrap
    1
    생성한 이미지 세트 구성 파일을 지정합니다. 예를 들어, imageset-config.yaml .
    2
    이미지 세트 파일을 미러링할 레지스트리를 지정합니다. 레지스트리는 docker:// 로 시작해야 합니다. 미러 레지스트리에 최상위 네임스페이스를 지정하는 경우 후속 실행 시 동일한 네임스페이스를 사용해야 합니다.

검증

  1. 생성된 oc-mirror-workspace/ 디렉터리로 이동합니다.
  2. 결과 디렉터리로 이동합니다 (예: results-1639608409/).
  3. ImageContentSourcePolicyCatalogSource 리소스에 YAML 파일이 있는지 확인합니다.
참고

ImageContentSourcePolicy YAML 파일의 repositoryDigestMirrors 섹션은 설치 중에 install-config.yaml 파일에 사용됩니다.

다음 단계

  • CRI-O를 수동으로 구성하는 데 사용할 ImageContentSourcePolicy YAML 콘텐츠를 변환합니다.
  • 필요한 경우 미러에서 디스크로 이미지를 미러링하여 연결이 끊어지거나 오프라인에서 사용할 수 있습니다.
  • oc-mirror에서 생성된 리소스를 사용하도록 클러스터를 구성합니다.

3.5.7.2. 완전히 연결이 끊긴 환경에서 이미지 세트 미러링

완전히 연결이 끊긴 환경에서 이미지 세트를 미러링하려면 먼저 이미지 세트를 디스크로 미러링 한 다음 디스크의 이미지 세트 파일을 미러에 미러링해야 합니다.

3.5.7.2.1. 미러에서 디스크로 미러링

oc-mirror 플러그인을 사용하면 이미지 세트를 생성하고 내용을 디스크에 저장할 수 있습니다. 그런 다음 생성된 이미지 세트를 연결이 끊긴 환경으로 전송하고 대상 레지스트리에 미러링할 수 있습니다.

중요

이미지 세트 구성 파일에 지정된 구성에 따라 oc-mirror를 사용하여 이미지를 미러링하는 경우 수백 기가바이트의 데이터를 디스크에 다운로드할 수 있습니다.

미러 레지스트리를 채울 때 초기 이미지 세트 다운로드는 종종 가장 큰 것입니다. 마지막으로 명령을 실행한 이후 변경된 이미지만 다운로드하므로 oc-mirror 플러그인을 다시 실행하면 생성된 이미지 세트가 더 작아지는 경우가 많습니다.

이미지 세트 구성 파일에서 스토리지 백엔드를 지정해야 합니다. 이 스토리지 백엔드는 로컬 디렉터리 또는 docker v2 레지스트리일 수 있습니다. oc-mirror 플러그인은 이미지 세트를 생성하는 동안 이 스토리지 백엔드에 메타데이터를 저장합니다.

중요

oc-mirror 플러그인에서 생성된 메타데이터를 삭제하거나 수정하지 마세요. 동일한 미러 레지스트리에 대해 oc-mirror 플러그인을 실행할 때마다 동일한 스토리지 백엔드를 사용해야 합니다.

사전 요구 사항

  • 필요한 컨테이너 이미지를 얻으려면 인터넷에 액세스할 수 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • oc-mirror CLI 플러그인을 설치했습니다.
  • 이미지 세트 구성 파일을 생성했습니다.

프로세스

  • oc mirror 명령을 실행하여 지정된 이미지 세트 구성의 이미지를 디스크로 미러링합니다.

    $ oc mirror --config=./imageset-config.yaml \
    1
    
      file://<path_to_output_directory>          
    2
    Copy to Clipboard Toggle word wrap
    1
    생성된 이미지 세트 구성 파일을 전달합니다. 이 절차에서는 imageset-config.yaml 이라는 이름을 가정합니다.
    2
    이미지 세트 파일을 출력할 대상 디렉터리를 지정합니다. 대상 디렉터리 경로는 file:// 로 시작해야 합니다.

검증

  1. 출력 디렉터리로 이동합니다.

    $ cd <path_to_output_directory>
    Copy to Clipboard Toggle word wrap
  2. 이미지 세트 .tar 파일이 생성되었는지 확인합니다.

    $ ls
    Copy to Clipboard Toggle word wrap

    출력 예

    mirror_seq1_000000.tar
    Copy to Clipboard Toggle word wrap

다음 단계

  • 이미지 세트 .tar 파일을 연결이 끊긴 환경으로 전송합니다.
3.5.7.2.2. 디스크에서 미러로 미러링

oc-mirror 플러그인을 사용하면 생성된 이미지 세트의 내용을 대상 미러 레지스트리로 미러링할 수 있습니다.

사전 요구 사항

  • 연결이 끊긴 환경에 OpenShift CLI (oc)를 설치했습니다.
  • 연결이 끊긴 환경에 oc-mirror CLI 플러그인을 설치했습니다.
  • oc mirror 명령을 사용하여 이미지 세트 파일을 생성했습니다.
  • 이미지 세트 파일을 연결이 끊긴 환경으로 전송했습니다.

프로세스

  • oc mirror 명령을 실행하여 디스크에서 이미지 세트 파일을 처리하고 콘텐츠를 대상 미러 레지스트리에 미러링합니다.

    $ oc mirror --from=./mirror_seq1_000000.tar \
    1
    
      docker://registry.example:5000             
    2
    Copy to Clipboard Toggle word wrap
    1
    이 예제에서 mirror_seq1_000000.tar 라는 이미지 세트 .tar 파일을 전달합니다. 이미지 세트 구성 파일에 archiveSize 값이 지정된 경우 이미지 세트가 여러 .tar 파일로 분할될 수 있습니다. 이 경우 이미지 세트 .tar 파일이 포함된 디렉토리에 전달할 수 있습니다.
    2
    이미지 세트 파일을 미러링할 레지스트리를 지정합니다. 레지스트리는 docker:// 로 시작해야 합니다. 미러 레지스트리에 최상위 네임스페이스를 지정하는 경우 후속 실행 시 동일한 네임스페이스를 사용해야 합니다.

    이 명령은 이미지 세트로 미러 레지스트리를 업데이트하고 ImageContentSourcePolicyCatalogSource 리소스를 생성합니다.

검증

  1. 생성된 oc-mirror-workspace/ 디렉터리로 이동합니다.
  2. 결과 디렉터리로 이동합니다 (예: results-1639608409/).
  3. ImageContentSourcePolicyCatalogSource 리소스에 YAML 파일이 있는지 확인합니다.

다음 단계

  • oc-mirror에서 생성된 리소스를 사용하도록 클러스터를 구성합니다.

3.5.8. oc-mirror에서 생성된 리소스를 사용하도록 클러스터 구성

이미지 세트를 미러 레지스트리로 미러링한 후에는 생성된 ImageContentSourcePolicy , CatalogSource를 적용하고 이미지 서명 리소스를 클러스터에 릴리스해야 합니다.

ImageContentSourcePolicy 리소스는 미러 레지스트리를 소스 레지스트리와 연결하고 온라인 레지스트리에서 미러 레지스트리로 이미지 가져오기 요청을 리디렉션합니다. CatalogSource 리소스는 OLM(Operator Lifecycle Manager) Classic에서 미러 레지스트리에서 사용 가능한 Operator에 대한 정보를 검색하는 데 사용됩니다. 릴리스 이미지 서명은 미러링된 릴리스 이미지를 확인하는 데 사용됩니다.

참고

OLM v1은 ClusterCatalog 리소스를 사용하여 미러 레지스트리에서 사용 가능한 클러스터 확장에 대한 정보를 검색합니다.

oc-mirror 플러그인 v1은 ClusterCatalog 리소스를 자동으로 생성하지 않습니다. 수동으로 생성해야 합니다. ClusterCatalog 리소스를 만들고 적용하는 방법에 대한 자세한 내용은 "확장"의 "클러스터에 카탈로그 추가"를 참조하세요.

사전 요구 사항

  • 연결이 끊긴 환경에서 레지스트리 미러로 이미지를 미러링했습니다.
  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.

프로세스

  1. cluster-admin 역할이 있는 사용자로 OpenShift CLI( oc )에 로그인합니다.
  2. 다음 명령을 실행하여 결과 디렉토리의 YAML 파일을 클러스터에 적용합니다.

    $ oc apply -f ./oc-mirror-workspace/results-1639608409/
    Copy to Clipboard Toggle word wrap
  3. 미러링된 릴리스 이미지가 있는 경우 다음 명령을 실행하여 릴리스 이미지 서명을 클러스터에 적용합니다.

    $ oc apply -f ./oc-mirror-workspace/results-1639608409/release-signatures/
    Copy to Clipboard Toggle word wrap
    참고

    클러스터 대신 Operator를 미러링하는 경우 $ oc apply -f ./oc-mirror-workspace/results-1639608409/release-signatures/ 를 실행할 필요가 없습니다. 적용할 릴리스 이미지 서명이 없으므로 해당 명령을 실행하면 오류가 반환됩니다.

검증

  1. 다음 명령을 실행하여 ImageContentSourcePolicy 리소스가 성공적으로 설치되었는지 확인하세요.

    $ oc get imagecontentsourcepolicy
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 CatalogSource 리소스가 성공적으로 설치되었는지 확인하세요.

    $ oc get catalogsource -n openshift-marketplace
    Copy to Clipboard Toggle word wrap

3.5.9. 미러 레지스트리 콘텐츠 업데이트

이미지 세트 구성 파일을 업데이트하고 이미지 세트를 미러 레지스트리에 미러링하여 미러 레지스트리 콘텐츠를 업데이트할 수 있습니다. 다음에 oc-mirror 플러그인을 실행하면 이전 실행 이후 새롭고 업데이트된 이미지만 포함된 이미지 세트가 생성됩니다.

미러 레지스트리를 업데이트할 때 다음 사항을 고려해야 합니다.

  • 최신 이미지 세트에 더 이상 포함되지 않은 이미지는 생성되어 미러링된 경우 대상 미러 레지스트리에서 정리됩니다. 따라서 다음 주요 구성 요소의 동일한 조합에 대해 이미지를 업데이트하여 차등 이미지 세트만 생성되고 미러링되도록 해야 합니다.

    • 이미지 세트 구성
    • 목적지 레지스트리
    • 스토리지 구성
  • 디스크 대 미러 또는 미러 대 미러 워크플로의 경우 이미지를 정리할 수 있습니다.
  • 생성된 이미지 세트는 순서대로 대상 미러 레지스트리에 푸시되어야 합니다. 생성된 이미지 세트 아카이브 파일의 파일 이름에서 시퀀스 번호를 파생할 수 있습니다.
  • oc-mirror 플러그인이 생성한 메타데이터 이미지를 삭제하거나 수정하지 마세요.
  • 초기 이미지 세트 생성 중에 미러 레지스트리에 대한 최상위 네임스페이스를 지정한 경우 동일한 미러 레지스트리에 대해 oc-mirror 플러그인을 실행할 때마다 동일한 네임스페이스를 사용해야 합니다.

미러 레지스트리 콘텐츠를 업데이트하는 워크플로에 대한 자세한 내용은 "고급 워크플로" 섹션을 참조하세요.

3.5.9.1. 미러 레지스트리 업데이트 예

이 섹션에서는 디스크에서 미러로 미러 레지스트리를 업데이트하는 사용 사례를 다룹니다.

이전에 미러링에 사용되었던 ImageSetConfiguration 파일 예시

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  local:
    path: /home/user/metadata
mirror:
  platform:
    channels:
      - name: stable-4.12
        minVersion: 4.12.1
        maxVersion: 4.12.1
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
      packages:
        - name: rhacs-operator
          channels:
          - name: stable
Copy to Clipboard Toggle word wrap

ImageSetConfiguration 파일이 업데이트되었습니다.

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  local:
    path: /home/user/metadata
mirror:
  platform:
    channels:
      - name: stable-4.13 
1

  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
      packages:
        - name: rhacs-operator
          channels:
          - name: stable
Copy to Clipboard Toggle word wrap

1
stable-4.13 으로 교체하면 stable-4.12 의 모든 이미지가 제거됩니다.
3.5.9.1.2. 기존 이미지를 정리하여 최신 버전의 Operator로 업데이트

ImageSetConfiguration 파일이 업데이트되었습니다.

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  local:
    path: /home/user/metadata
mirror:
  platform:
    channels:
      - name: stable-4.12
        minVersion: 4.12.1
        maxVersion: 4.12.1
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
      packages:
        - name: rhacs-operator
          channels:
          - name: stable 
1
Copy to Clipboard Toggle word wrap

1
버전을 지정하지 않고 동일한 채널을 사용하면 기존 이미지가 정리되고 최신 버전의 이미지로 업데이트됩니다.
3.5.9.1.3. 기존 Operator를 정리하여 새로운 Operator를 미러링합니다.

ImageSetConfiguration 파일이 업데이트되었습니다.

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  local:
    path: /home/user/metadata
mirror:
  platform:
    channels:
      - name: stable-4.12
        minVersion: 4.12.1
        maxVersion: 4.12.1
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
      packages:
        - name: <new_operator_name> 
1

          channels:
          - name: stable
Copy to Clipboard Toggle word wrap

1
rhacs-operator를 new_operator_name 으로 바꾸면 Red Hat Advanced Cluster Security for Kubernetes Operator가 제거됩니다.
3.5.9.1.4. 모든 OpenShift 컨테이너 플랫폼 이미지 정리

ImageSetConfiguration 파일이 업데이트되었습니다.

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  local:
    path: /home/user/metadata
mirror:
  platform:
    channels:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
      packages:
Copy to Clipboard Toggle word wrap

3.5.10. 드라이런 수행

oc-mirror를 사용하면 실제로 이미지를 미러링하지 않고도 테스트 실행을 수행할 수 있습니다. 이를 통해 미러링될 이미지 목록과 미러 레지스트리에서 제거될 이미지를 검토할 수 있습니다. 연습 실행을 통해 이미지 세트 구성의 오류를 일찍 발견하거나 생성된 이미지 목록을 다른 도구와 함께 사용하여 미러링 작업을 수행할 수도 있습니다.

사전 요구 사항

  • 필요한 컨테이너 이미지를 얻으려면 인터넷에 액세스할 수 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • oc-mirror CLI 플러그인을 설치했습니다.
  • 이미지 세트 구성 파일을 생성했습니다.

프로세스

  1. --dry-run 플래그와 함께 oc mirror 명령을 실행하여 테스트 실행을 수행합니다.

    $ oc mirror --config=./imageset-config.yaml \
    1
    
      docker://registry.example:5000            \
    2
    
      --dry-run                                  
    3
    Copy to Clipboard Toggle word wrap
    1
    생성된 이미지 세트 구성 파일을 전달합니다. 이 절차에서는 imageset-config.yaml 이라는 이름을 가정합니다.
    2
    미러 레지스트리를 지정합니다. --dry-run 플래그를 사용하는 한 이 레지스트리에는 아무것도 미러링되지 않습니다.
    3
    --dry-run 플래그를 사용하여 실제 이미지 세트 파일이 아닌 드라이런 아티팩트를 생성합니다.

    출력 예

    Checking push permissions for registry.example:5000
    Creating directory: oc-mirror-workspace/src/publish
    Creating directory: oc-mirror-workspace/src/v2
    Creating directory: oc-mirror-workspace/src/charts
    Creating directory: oc-mirror-workspace/src/release-signatures
    No metadata detected, creating new workspace
    wrote mirroring manifests to oc-mirror-workspace/operators.1658342351/manifests-redhat-operator-index
    
    ...
    
    info: Planning completed in 31.48s
    info: Dry run complete
    Writing image mapping to oc-mirror-workspace/mapping.txt
    Copy to Clipboard Toggle word wrap

  2. 생성된 작업 공간 디렉토리로 이동합니다.

    $ cd oc-mirror-workspace/
    Copy to Clipboard Toggle word wrap
  3. 생성된 mapping.txt 파일을 검토합니다.

    이 파일에는 미러링될 모든 이미지 목록이 포함되어 있습니다.

  4. 생성된 pruning-plan.json 파일을 검토합니다.

    이 파일에는 이미지 세트가 게시될 때 미러 레지스트리에서 제거되는 모든 이미지 목록이 포함되어 있습니다.

    참고

    pruning-plan.json 파일은 oc-mirror 명령이 미러 레지스트리를 가리키고 정리할 이미지가 있는 경우에만 생성됩니다.

3.5.11. 로컬 OCI 운영자 카탈로그 포함

레지스트리에서 OpenShift Container Platform 릴리스, Operator 카탈로그 및 추가 이미지를 부분적으로 연결이 끊긴 클러스터로 미러링하는 동안 디스크에 있는 로컬 파일 기반 카탈로그의 Operator 카탈로그 이미지를 포함할 수 있습니다. 로컬 카탈로그는 OCI(Open Container Initiative) 형식이어야 합니다.

로컬 카탈로그와 그 내용은 이미지 세트 구성 파일의 필터링 정보를 기반으로 대상 미러 레지스트리에 미러링됩니다.

중요

로컬 OCI 카탈로그를 미러링하는 경우 로컬 OCI 형식 카탈로그와 함께 미러링하려는 모든 OpenShift Container Platform 릴리스나 추가 이미지를 레지스트리에서 가져와야 합니다.

디스크에 있는 oc-mirror 이미지 세트 파일과 함께 OCI 카탈로그를 미러링할 수 없습니다.

OCI 기능을 사용하는 한 가지 사용 사례는 CI/CD 시스템이 디스크의 위치에 OCI 카탈로그를 빌드하고, 해당 OCI 카탈로그를 OpenShift Container Platform 릴리스와 함께 미러 레지스트리에 미러링하려는 경우입니다.

참고

OpenShift Container Platform 4.12의 oc-mirror 플러그인에 대한 Technology Preview OCI 로컬 카탈로그 기능을 사용한 경우, 더 이상 oc-mirror 플러그인의 OCI 로컬 카탈로그 기능을 사용하여 카탈로그를 로컬로 복사하고 완전히 연결 해제된 클러스터로 미러링하기 위한 첫 번째 단계로 OCI 형식으로 변환할 수 없습니다.

사전 요구 사항

  • 필요한 컨테이너 이미지를 얻으려면 인터넷에 액세스할 수 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • oc-mirror CLI 플러그인을 설치했습니다.

프로세스

  1. 이미지 세트 구성 파일을 만들고 필요에 따라 설정을 조정합니다.

    다음 예제 이미지 세트 구성은 OpenShift Container Platform 릴리스와 registry.redhat.io 의 UBI 이미지와 함께 디스크에 있는 OCI 카탈로그를 미러링합니다.

    kind: ImageSetConfiguration
    apiVersion: mirror.openshift.io/v1alpha2
    storageConfig:
      local:
        path: /home/user/metadata                                                
    1
    
    mirror:
      platform:
        channels:
        - name: stable-4.19                                                      
    2
    
          type: ocp
        graph: false
      operators:
      - catalog: oci:///home/user/oc-mirror/my-oci-catalog                       
    3
    
        targetCatalog: my-namespace/redhat-operator-index                        
    4
    
        packages:
        - name: aws-load-balancer-operator
      - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19           
    5
    
        packages:
        - name: rhacs-operator
      additionalImages:
      - name: registry.redhat.io/ubi9/ubi:latest                                 
    6
    Copy to Clipboard Toggle word wrap
    1
    이미지 세트 메타데이터를 저장할 백엔드 위치를 설정합니다. 이 위치는 레지스트리 또는 로컬 디렉터리일 수 있습니다. storageConfig 값을 지정해야 합니다.
    2
    선택적으로 registry.redhat.io 에서 미러링할 OpenShift Container Platform 릴리스를 포함합니다.
    3
    디스크에서 OCI 카탈로그의 위치에 대한 절대 경로를 지정합니다. OCI 기능을 사용하는 경우 경로는 oci:// 로 시작해야 합니다.
    4
    선택적으로 카탈로그를 미러링할 대체 네임스페이스와 이름을 지정합니다.
    5
    선택적으로 레지스트리에서 가져올 추가 운영자 카탈로그를 지정합니다.
    6
    선택적으로 레지스트리에서 가져올 추가 이미지를 지정합니다.
  2. oc mirror 명령을 실행하여 OCI 카탈로그를 대상 미러 레지스트리로 미러링합니다.

    $ oc mirror --config=./imageset-config.yaml \ 
    1
    
      docker://registry.example:5000              
    2
    Copy to Clipboard Toggle word wrap
    1
    이미지 세트 구성 파일을 전달합니다. 이 절차에서는 imageset-config.yaml 이라는 이름을 가정합니다.
    2
    콘텐츠를 미러링할 레지스트리를 지정합니다. 레지스트리는 docker:// 로 시작해야 합니다. 미러 레지스트리에 최상위 네임스페이스를 지정하는 경우 후속 실행 시 동일한 네임스페이스를 사용해야 합니다.

    선택적으로 OCI 기능의 동작을 조정하기 위해 다른 플래그를 지정할 수 있습니다.

    --oci-insecure-signature-policy
    서명을 대상 미러 레지스트리로 내보내지 마십시오.
    --oci-registries-config

    TOML 형식의 registries.conf 파일의 경로를 지정합니다. 이 기능을 사용하면 이미지 세트 구성 파일을 변경하지 않고도 테스트를 위한 사전 프로덕션 위치 등 다른 레지스트리에서 미러링할 수 있습니다. 이 플래그는 로컬 OCI 카탈로그에만 영향을 미치며, 다른 미러링된 콘텐츠에는 영향을 미치지 않습니다.

    registries.conf 파일 예시

    [[registry]]
     location = "registry.redhat.io:5000"
     insecure = false
     blocked = false
     mirror-by-digest-only = true
     prefix = ""
     [[registry.mirror]]
        location = "preprod-registry.example.com"
        insecure = false
    Copy to Clipboard Toggle word wrap

다음 단계

  • oc-mirror에서 생성된 리소스를 사용하도록 클러스터를 구성합니다.

3.5.12. 이미지 세트 구성 매개변수

oc-mirror 플러그인에는 어떤 이미지를 미러링할지 정의하는 이미지 세트 구성 파일이 필요합니다. 다음 표에는 ImageSetConfiguration 리소스에 사용 가능한 매개변수가 나열되어 있습니다.

Expand
표 3.8. ImageSetConfiguration 매개변수
매개변수설명

apiVersion

ImageSetConfiguration 콘텐츠의 API 버전입니다.

문자열. 예: mirror.openshift.io/v1alpha2 .

archiveSize

이미지 세트 내의 각 아카이브 파일의 최대 크기(GiB)입니다.

정수. 예: 4

mirror

이미지 세트의 구성입니다.

개체

mirror.additionalImages

이미지 세트의 추가 이미지 구성입니다.

개체의 배열입니다. 예를 들면 다음과 같습니다.

additionalImages:
  - name: registry.redhat.io/ubi8/ubi:latest
Copy to Clipboard Toggle word wrap

mirror.additionalImages.name

미러링할 이미지의 태그 또는 다이제스트입니다.

문자열. 예: registry.redhat.io/ubi8/ubi:latest

mirror.blockedImages

미러링을 차단할 이미지의 전체 태그, 다이제스트 또는 패턴입니다.

문자열의 배열. 예: docker.io/library/alpine

mirror.helm

이미지 세트의 helm 구성입니다. oc-mirror 플러그인은 렌더링 시 사용자 입력이 필요하지 않은 헬름 차트만 지원합니다.

개체

mirror.helm.local

미러링할 로컬 helm 차트입니다.

개체의 배열입니다. 예를 들면 다음과 같습니다.

local:
  - name: podinfo
    path: /test/podinfo-5.0.0.tar.gz
Copy to Clipboard Toggle word wrap

mirror.helm.local.name

미러링할 로컬 helm 차트의 이름입니다.

문자열. 예: podinfo.

mirror.helm.local.path

미러링할 로컬 helm 차트의 경로입니다.

문자열. 예: /test/podinfo-5.0.0.tar.gz.

mirror.helm.repositories

미러링할 원격 helm 리포지토리입니다.

개체의 배열입니다. 예를 들면 다음과 같습니다.

repositories:
  - name: podinfo
    url: https://example.github.io/podinfo
    charts:
      - name: podinfo
        version: 5.0.0
Copy to Clipboard Toggle word wrap

mirror.helm.repositories.name

미러링할 helm 저장소 이름입니다.

문자열. 예: podinfo.

mirror.helm.repositories.url

미러링할 helm 리포지토리의 URL입니다.

문자열. 예: https://example.github.io/podinfo.

mirror.helm.repositories.charts

미러링할 원격 helm 차트입니다.

개체의 배열입니다.

mirror.helm.repositories.charts.name

미러링할 helm 차트의 이름입니다.

문자열. 예: podinfo.

mirror.helm.repositories.charts.version

미러링할 이름이 helm 차트의 버전입니다.

문자열. 예: 5.0.0.

mirror.operators

이미지 세트의 Operator 구성

개체의 배열입니다. 예를 들면 다음과 같습니다.

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19
    packages:
      - name: elasticsearch-operator
        minVersion: '2.4.0'
Copy to Clipboard Toggle word wrap

mirror.operators.catalog

이미지 세트에 포함할 Operator 카탈로그입니다.

문자열. 예: registry.redhat.io/redhat/redhat-operator-index:v4.19 .

mirror.operators.full

true 인 경우 전체 카탈로그, 운영자 패키지 또는 운영자 채널을 다운로드합니다.

부울. 기본값은 false입니다.

mirror.operators.packages

Operator 패키지 구성입니다.

개체의 배열입니다. 예를 들면 다음과 같습니다.

operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19
    packages:
      - name: elasticsearch-operator
        minVersion: '5.2.3-31'
Copy to Clipboard Toggle word wrap

mirror.operators.packages.name

이미지 세트에 포함할 Operator 패키지 이름

문자열. 예: elasticsearch-operator.

mirror.operators.packages.channels

Operator 패키지 채널 구성입니다.

개체

mirror.operators.packages.channels.name

이미지 세트에 포함할 Operator 채널 이름은 패키지 내에서 고유합니다.

문자열. 예를 들어: fast 또는 stable-v4.19 .

mirror.operators.packages.channels.maxVersion

모든 채널에 걸쳐 가장 높은 버전의 Operator mirror입니다. 자세한 내용은 다음 참고사항을 참조하세요.

문자열. 예: 5.2.3-31

mirror.operators.packages.channels.minBundle

채널 헤드에 업데이트 그래프에 포함된 모든 번들과 함께 포함할 최소 번들의 이름입니다. 명명된 번들에 의미적 버전 메타데이터가 없는 경우에만 이 필드를 설정합니다.

문자열. 예: bundleName

mirror.operators.packages.channels.minVersion

모든 채널에 걸쳐 미러링할 수 있는 가장 낮은 버전의 Operator입니다. 자세한 내용은 다음 참고사항을 참조하세요.

문자열. 예: 5.2.3-31

mirror.operators.packages.maxVersion

모든 채널에 걸쳐 미러링할 수 있는 Operator의 가장 높은 버전입니다. 자세한 내용은 다음 참고 사항을 참조하십시오.

문자열. 예: 5.2.3-31.

mirror.operators.packages.minVersion

존재하는 모든 채널에 미러링할 Operator의 가장 낮은 버전입니다. 자세한 내용은 다음 참고 사항을 참조하십시오.

문자열. 예: 5.2.3-31.

mirror.operators.skipDependencies

true 인 경우 번들의 종속 항목은 포함되지 않습니다.

부울. 기본값은 false입니다.

mirror.operators.targetCatalog

참조된 카탈로그를 미러링하는 대체 이름 및 선택적 네임스페이스 계층 구조입니다.

문자열. 예: my-namespace/my-operator-catalog

mirror.operators.targetName

참조된 카탈로그를 반영하는 대체 이름입니다.

targetName 매개변수는 더 이상 사용되지 않습니다. 대신 targetCatalog 매개변수를 사용합니다.

문자열. 예: my-operator-catalog

mirror.operators.targetTag

targetName 또는 targetCatalog 에 추가할 수 있는 대체 태그입니다.

문자열. 예: v1

mirror.platform

이미지 세트의 플랫폼 구성입니다.

개체

mirror.platform.architectures

플랫폼 릴리스 페이로드의 아키텍처는 미러링됩니다.

문자열의 배열. 예를 들면 다음과 같습니다.

architectures:
  - amd64
  - arm64
  - multi
  - ppc64le
  - s390x
Copy to Clipboard Toggle word wrap

기본값은 amd64 입니다. multi 값은 모든 사용 가능한 아키텍처에 대해 미러링이 지원되도록 보장하므로 개별 아키텍처를 지정할 필요가 없습니다.

mirror.platform.channels

이미지 세트의 플랫폼 채널 구성입니다.

개체의 배열입니다. 예를 들면 다음과 같습니다.

channels:
  - name: stable-4.10
  - name: stable-4.19
Copy to Clipboard Toggle word wrap

mirror.platform.channels.full

true인 경우 minVersion을 채널의 첫 번째 릴리스로 설정하고 maxVersion을 채널의 마지막 릴리스로 설정합니다.

부울. 기본값은 false입니다.

mirror.platform.channels.name

릴리스 채널의 이름입니다.

문자열. 예: stable-4.19

mirror.platform.channels.minVersion

미러링할 참조된 플랫폼의 최소 버전입니다.

문자열. 예를 들면 2.0.0 입니다.

mirror.platform.channels.maxVersion

참조된 플랫폼의 가장 높은 버전을 미러링합니다.

문자열. 예를 들면 2.0.0 입니다.

mirror.platform.channels.shortestPath

경로 미러링 또는 전체 범위 미러링을 전환합니다.

부울. 기본값은 false입니다.

mirror.platform.channels.type

미러링할 플랫폼의 유형입니다.

문자열. 예: ocp 또는 okd. 기본값은 OFF입니다.

mirror.platform.graph

OSUS 그래프가 이미지 세트에 추가되고 나중에 미러에 게시되는지 여부를 나타냅니다.

부울. 기본값은 false입니다.

storageConfig

이미지 세트의 백엔드 구성입니다.

개체

storageConfig.local

이미지 세트의 로컬 백엔드 구성입니다.

개체

storageConfig.local.path

이미지 세트 메타데이터를 포함할 디렉터리의 경로입니다.

문자열. 예: ./path/to/dir/.

storageConfig.registry

이미지 세트의 레지스트리 백엔드 구성입니다.

개체

storageConfig.registry.imageURL

백엔드 레지스트리 URI입니다. URI에 네임스페이스 참조를 선택적으로 포함할 수 있습니다.

문자열. 예: quay.io/myuser/imageset:metadata.

storageConfig.registry.skipTLS

필요한 경우 참조된 백엔드 레지스트리의 TLS 확인을 건너뜁니다.

부울. 기본값은 false입니다.

참고

minVersionmaxVersion 속성을 사용하여 특정 Operator 버전 범위를 필터링하면 여러 채널 헤드 오류가 발생할 수 있습니다. 오류 메시지는 여러 채널 헤드 가 있음을 나타냅니다. 필터가 적용되면 Operator의 업데이트 그래프가 잘립니다.

Operator Lifecycle Manager를 사용하려면 모든 Operator 채널에 정확히 하나의 엔드 포인트, 즉 최신 버전의 Operator가 있는 업데이트 그래프를 구성하는 버전이 포함되어 있어야 합니다. 필터 범위가 적용되면 해당 그래프는 두 개 이상의 개별 그래프 또는 두 개 이상의 끝점이 있는 그래프로 전환할 수 있습니다.

이 오류를 방지하려면 최신 버전의 Operator를 필터링하지 마십시오. Operator에 따라 오류가 계속 실행되는 경우 maxVersion 속성을 늘리거나 minVersion 속성을 줄여야 합니다. 모든 Operator 그래프는 다를 수 있으므로 오류가 해결될 때까지 이러한 값을 조정해야 할 수 있습니다.

3.5.13. 이미지 세트 구성 예

다음 ImageSetConfiguration 파일 예제에서는 다양한 미러링 사용 사례에 대한 구성을 보여줍니다.

다음 ImageSetConfiguration 파일은 로컬 스토리지 백엔드를 사용하고 최소 버전 4.11.37 에서 최대 버전 4.12.15 까지의 가장 짧은 업데이트 경로를 따라 모든 OpenShift Container Platform 버전을 포함합니다.

ImageSetConfiguration 파일 예

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  local:
    path: /home/user/metadata
mirror:
  platform:
    channels:
      - name: stable-4.12
        minVersion: 4.11.37
        maxVersion: 4.12.15
        shortestPath: true
Copy to Clipboard Toggle word wrap

다음 ImageSetConfiguration 파일은 레지스트리 스토리지 백엔드를 사용하고 채널의 최신 버전인 최소 4.13.4 부터 시작하여 모든 OpenShift Container Platform 버전을 포함합니다. 이 이미지 세트 구성으로 oc-mirror를 호출할 때마다 stable-4.13 채널의 최신 릴리스가 평가되므로 정기적으로 oc-mirror를 실행하면 OpenShift Container Platform 이미지의 최신 릴리스를 자동으로 받을 수 있습니다.

platform.architectures 값을 multi 로 설정하면 다중 아키텍처 릴리스에 대한 미러링이 지원됩니다.

ImageSetConfiguration 파일 예

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  registry:
    imageURL: example.com/mirror/oc-mirror-metadata
    skipTLS: false
mirror:
  platform:
    architectures:
      - "multi"
    channels:
      - name: stable-4.13
        minVersion: 4.13.4
        maxVersion: 4.13.6
Copy to Clipboard Toggle word wrap

3.5.13.3. 사용 사례: Operator 버전 최소에서 최신 버전 포함

다음 ImageSetConfiguration 파일은 로컬 스토리지 백엔드를 사용하며 안정 채널에서 4.0.1 이상 버전부터 시작하는 Red Hat Advanced Cluster Security for Kubernetes Operator만 포함합니다.

참고

최소 또는 최대 버전 범위를 지정하면 해당 범위에 속하는 모든 Operator 버전을 받지 못할 수 있습니다.

기본적으로 oc-mirror는 OLM(Operator Lifecycle Manager) 사양에서 건너뛰거나 최신 버전으로 대체된 모든 버전을 제외합니다. 건너뛴 운영자 버전은 CVE의 영향을 받거나 버그를 포함할 수 있습니다. 대신 최신 버전을 사용하세요. 건너뛴 버전과 바뀐 버전에 대한 자세한 내용은 OLM을 사용하여 업데이트 그래프 만들기를 참조하세요.

지정된 범위 내의 모든 Operator 버전을 받으려면 mirror.operators.full 필드를 true 로 설정하면 됩니다.

ImageSetConfiguration 파일 예

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  local:
    path: /home/user/metadata
mirror:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19
      packages:
        - name: rhacs-operator
          channels:
          - name: stable
            minVersion: 4.0.1
Copy to Clipboard Toggle word wrap

참고

최신 버전 대신 최대 버전을 지정하려면 mirror.operators.packages.channels.maxVersion 필드를 설정합니다.

3.5.13.4. 사용 사례: Nutanix CSI Operator 포함

다음 ImageSetConfiguration 파일은 로컬 스토리지 백엔드를 사용하고 Nutanix CSI Operator, OpenShift Update Service(OSUS) 그래프 이미지, 추가 Red Hat Universal Base Image(UBI)를 포함합니다.

ImageSetConfiguration 파일 예

kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v1alpha2
storageConfig:
  registry:
    imageURL: mylocalregistry/ocp-mirror/openshift4
    skipTLS: false
mirror:
  platform:
    channels:
    - name: stable-4.11
      type: ocp
    graph: true
  operators:
  - catalog: registry.redhat.io/redhat/certified-operator-index:v4.19
    packages:
    - name: nutanixcsioperator
      channels:
      - name: stable
  additionalImages:
  - name: registry.redhat.io/ubi9/ubi:latest
Copy to Clipboard Toggle word wrap

3.5.13.5. 사용 사례: 기본 운영자 채널 포함

다음 ImageSetConfiguration 파일에는 OpenShift Elasticsearch Operator의 stable-5.7stable 채널이 포함되어 있습니다. stable-5.7 채널의 패키지만 필요한 경우에도, operator의 기본 채널인 stable 채널도 ImageSetConfiguration 파일에 포함되어야 합니다. 해당 채널에서 번들을 사용하지 않더라도 항상 Operator 패키지의 기본 채널을 포함해야 합니다.

작은 정보

다음 명령을 실행하면 기본 채널을 찾을 수 있습니다: oc mirror list operators --catalog=<catalog_name> --package=<package_name> .

ImageSetConfiguration 파일 예

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  registry:
    imageURL: example.com/mirror/oc-mirror-metadata
    skipTLS: false
mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19
    packages:
    - name: elasticsearch-operator
      channels:
      - name: stable-5.7
      - name: stable
Copy to Clipboard Toggle word wrap

3.5.13.6. 사용 사례: 전체 카탈로그(모든 버전) 포함

다음 ImageSetConfiguration 파일은 mirror.operators.full 필드를 true 로 설정하여 전체 Operator 카탈로그의 모든 버전을 포함합니다.

ImageSetConfiguration 파일 예

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  registry:
    imageURL: example.com/mirror/oc-mirror-metadata
    skipTLS: false
mirror:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19
      full: true
Copy to Clipboard Toggle word wrap

3.5.13.7. 사용 사례: 전체 카탈로그 포함(채널 헤드만)

다음 ImageSetConfiguration 파일에는 전체 Operator 카탈로그에 대한 채널 헤드가 포함되어 있습니다.

기본적으로 카탈로그의 각 운영자에 대해 oc-mirror는 기본 채널의 최신 운영자 버전(채널 헤드)을 포함합니다. 채널 헤드뿐만 아니라 모든 Operator 버전을 미러링하려면 mirror.operators.full 필드를 true 로 설정해야 합니다.

이 예제에서는 targetCatalog 필드를 사용하여 카탈로그를 미러링할 대체 네임스페이스와 이름을 지정합니다.

ImageSetConfiguration 파일 예

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  registry:
    imageURL: example.com/mirror/oc-mirror-metadata
    skipTLS: false
mirror:
  operators:
  - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19
    targetCatalog: my-namespace/my-operator-catalog
Copy to Clipboard Toggle word wrap

3.5.13.8. 사용 사례: 임의의 이미지 및 helm 차트 포함

다음 ImageSetConfiguration 파일은 레지스트리 스토리지 백엔드를 사용하며 helm 차트 및 추가 Red Hat UBI(Universal Base Image)를 포함합니다.

ImageSetConfiguration 파일 예

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
archiveSize: 4
storageConfig:
  registry:
    imageURL: example.com/mirror/oc-mirror-metadata
    skipTLS: false
mirror:
 platform:
   architectures:
     - "s390x"
   channels:
     - name: stable-4.19
 operators:
   - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19
 helm:
   repositories:
     - name: redhat-helm-charts
       url: https://raw.githubusercontent.com/redhat-developer/redhat-helm-charts/master
       charts:
         - name: ibm-mongodb-enterprise-helm
           version: 0.2.0
 additionalImages:
   - name: registry.redhat.io/ubi9/ubi:latest
Copy to Clipboard Toggle word wrap

3.5.13.9. 사용 사례: EUS 릴리스의 업그레이드 경로 포함

다음 ImageSetConfiguration 파일에는 eus-<version> 채널이 포함되어 있으며, 여기서 maxVersion 값은 minVersion 값보다 최소 2개의 마이너 버전 이상 높습니다.

예를 들어, 이 ImageSetConfiguration 파일에서 minVersion은 4.12.28 로 설정되고, eus-4.14 채널의 maxVersion은 4.14.16 입니다.

ImageSetConfiguration 파일 예

kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v2alpha1
mirror:
  platform:
    graph: true # Required for the OSUS Operator
    architectures:
    - amd64
    channels:
    - name: stable-4.12
      minVersion: '4.12.28'
      maxVersion: '4.12.28'
      shortestPath: true
      type: ocp
    - name: eus-4.14
      minVersion: '4.12.28'
      maxVersion: '4.14.16'
      shortestPath: true
      type: ocp
Copy to Clipboard Toggle word wrap

다음 ImageSetConfiguration 파일에는 채널의 최소 버전 4.19.0 부터 시작하는 Kubernetes Operator 및 모든 OpenShift Container Platform 버전에 대한 멀티클러스터 엔진이 포함되어 있습니다.

ImageSetConfiguration 파일 예

apiVersion: mirror.openshift.io/v1alpha2
kind: ImageSetConfiguration
storageConfig:
  registry:
    imageURL: agent.agent.example.com:5000/openshift/release/metadata:latest/openshift/release/metadata:latest
mirror:
  platform:
    architectures:
      - "multi"
    channels:
    - name: stable-4.19
      minVersion: 4.19.0
      maxVersion: 4.19.1
      type: ocp
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.19
      packages:
        - name: multicluster-engine
Copy to Clipboard Toggle word wrap

3.5.14. oc-mirror에 대한 명령어 참조

다음 표에서는 oc mirror 하위 명령과 플래그를 설명합니다.

Expand
표 3.9. oc 미러 하위 명령
하위 명령설명

완료

지정된 셸에 대한 자동 완성 스크립트를 생성합니다.

describe

이미지 세트의 내용을 출력합니다.

help

모든 하위 명령에 대한 도움말을 표시합니다.

init

초기 이미지 세트 구성 템플릿을 출력합니다.

list

사용 가능한 플랫폼과 운영자 콘텐츠와 버전을 나열하세요.

version

oc-mirror 버전을 출력합니다.

Expand
표 3.10. oc mirror 플래그
플래그설명

-c, --config <string>

이미지 세트 구성 파일의 경로를 지정합니다.

--continue-on-error

이미지 풀링과 관련 없는 오류가 발생하면 계속해서 최대한 미러링을 시도하세요.

--dest-skip-tls

대상 레지스트리에 대한 TLS 유효성 검사를 비활성화합니다.

--dest-use-http

대상 레지스트리에 일반 HTTP를 사용합니다.

--dry-run

이미지를 미러링하지 않고 작업을 인쇄합니다. mapping.txtpruning-plan.json 파일을 생성합니다.

--from <string>

oc-mirror를 실행하여 생성된 이미지 세트 아카이브의 경로를 지정하여 대상 레지스트리에 로드합니다.

-h, --help

도움을 보여주세요.

--ignore-history

이미지를 다운로드하고 레이어를 패키징할 때 이전 미러를 무시합니다. 증분 미러링을 비활성화하고 더 많은 데이터를 다운로드할 수 있습니다.

--manifests-only

ImageContentSourcePolicy 개체에 대한 매니페스트를 생성하여 클러스터가 미러 레지스트리를 사용하도록 구성하지만 실제로는 이미지를 미러링하지 않습니다. 이 플래그를 사용하려면 --from 플래그와 함께 이미지 세트 아카이브를 전달해야 합니다.

--max-nested-paths <int>

중첩 경로를 제한하는 대상 레지스트리의 중첩 경로의 최대 수를 지정합니다. 기본값은 0입니다.

--max-per-registry <int>

레지스트리당 허용되는 동시 요청 수를 지정합니다. 기본값은 6 입니다.

--oci-insecure-signature-policy

로컬 OCI 카탈로그를 미러링할 때 서명을 푸시하지 마세요( --include-local-oci-catalogs 사용).

--oci-registries-config

--include-local-oci-catalogs 옵션을 사용하여 로컬 OCI 카탈로그를 미러링할 때 복사할 대체 레지스트리 위치를 지정하기 위해 레지스트리 구성 파일을 제공합니다.

--skip-cleanup

아티팩트 디렉토리 제거를 건너뜁니다.

--skip-image-pin

운영자 카탈로그에서 이미지 태그를 다이제스트 핀으로 바꾸지 마세요.

--skip-metadata-check

이미지 세트를 게시할 때 메타데이터를 건너뜁니다.

참고

이 옵션은 --ignore-history 플래그로 이미지 세트를 생성한 경우에만 권장됩니다.

--skip-missing

이미지를 찾을 수 없는 경우 오류를 보고하고 실행을 중단하는 대신 이미지를 건너뜁니다. 이미지 세트 구성에 명시적으로 지정된 사용자 정의 이미지에는 적용되지 않습니다.

--skip-pruning

대상 미러 레지스트리에서 이미지의 자동 정리를 비활성화합니다.

--skip-verification

다이제스트 검증을 건너뜁니다.

--source-skip-tls

소스 레지스트리에 대한 TLS 유효성 검사를 비활성화합니다.

--source-use-http

소스 레지스트리에는 일반 HTTP를 사용합니다.

-v, --verbose <int>

로그 수준의 자세한 정도에 대한 숫자를 지정합니다. 유효한 값은 0 ~ 9 입니다. 기본값은 0입니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat