12.7. 컨테이너 이미지 사전 캐시 기능 사용


단일 노드 OpenShift 클러스터는 컨테이너 이미지 레지스트리에 액세스하는 데 대역폭이 제한될 수 있으며, 이로 인해 업데이트가 완료되기 전에 시간 초과가 발생할 수 있습니다.

참고

업데이트 시간은 TALM에서 설정하지 않습니다. ClusterGroupUpgrade CR은 수동 적용이나 외부 자동화를 통해 업데이트 시작 시 적용할 수 있습니다.

컨테이너 이미지 사전 캐싱은 ClusterGroupUpgrade CR에서 preCaching 필드가 true 로 설정되면 시작됩니다.

TALM은 PrecacheSpecValid 조건을 사용하여 다음과 같이 상태 정보를 보고합니다.

  • true

    사전 캐싱 사양은 유효하고 일관성이 있습니다.

  • false

    사전 캐싱 사양이 완전하지 않습니다.

TALM은 PrecachingSucceeded 조건을 사용하여 다음과 같이 상태 정보를 보고합니다.

  • true

    TALM은 사전 캐싱 프로세스를 완료했습니다. 어떤 클러스터에서 사전 캐싱이 실패하면 해당 클러스터의 업데이트는 실패하지만 다른 모든 클러스터의 업데이트는 진행됩니다. 클러스터에 대한 사전 캐싱이 실패한 경우 이를 알려주는 메시지가 표시됩니다.

  • false

    하나 이상의 클러스터에 대한 사전 캐싱이 아직 진행 중이거나 모든 클러스터에 대해 실패했습니다.

사전 캐싱 프로세스가 성공적으로 완료되면 정책 수정을 시작할 수 있습니다. 수정 작업은 enable 필드가 true 로 설정되면 시작됩니다. 클러스터에서 사전 캐싱 오류가 발생하면 해당 클러스터의 업그레이드가 실패합니다. 사전 캐시가 성공적으로 완료된 다른 모든 클러스터에 대한 업그레이드 프로세스가 계속됩니다.

사전 캐싱 프로세스는 다음 상태일 수 있습니다.

  • NotStarted

    이는 ClusterGroupUpgrade CR의 첫 번째 조정 단계에서 모든 클러스터가 자동으로 할당되는 초기 상태입니다. 이 상태에서 TALM은 이전의 완료되지 않은 업데이트에서 남아 있는 스포크 클러스터의 사전 캐싱 네임스페이스 및 허브 뷰 리소스를 삭제합니다. 그런 다음 TALM은 스포크 사전 캐싱 네임스페이스에 대한 새 ManagedClusterView 리소스를 만들어 PrecachePreparing 상태에서 삭제를 확인합니다.

  • PreparingToStart

    이전에 완료되지 않은 업데이트로 인해 남아 있는 리소스를 정리하는 작업이 진행 중입니다.

  • Starting

    사전 캐싱 작업 전제 조건이 충족되고 작업이 생성됩니다.

  • 활성

    작업이 "활성" 상태입니다.

  • 성공했다

    사전 캐시 작업이 성공했습니다.

  • PrecacheTimeout

    아티팩트 사전 캐싱이 부분적으로 완료되었습니다.

  • UnrecoverableError

    작업이 0이 아닌 종료 코드로 종료됩니다.

12.7.1. 컨테이너 이미지 사전 캐시 필터 사용

사전 캐시 기능은 일반적으로 클러스터가 업데이트에 필요한 것보다 더 많은 이미지를 다운로드합니다. 어떤 사전 캐시 이미지를 클러스터에 다운로드할지 제어할 수 있습니다. 이렇게 하면 다운로드 시간이 줄어들고 대역폭과 저장 공간도 절약됩니다.

다음 명령을 사용하면 다운로드할 수 있는 모든 이미지 목록을 볼 수 있습니다.

$ oc adm release info <ocp-version>
Copy to Clipboard Toggle word wrap

다음 ConfigMap 예제는 excludePrecachePatterns 필드를 사용하여 이미지를 제외하는 방법을 보여줍니다.

apiVersion: v1
kind: ConfigMap
metadata:
  name: cluster-group-upgrade-overrides
data:
  excludePrecachePatterns: |
    azure 
1

    aws
    vsphere
    alibaba
Copy to Clipboard Toggle word wrap
1
TALM에서는 여기에 나열된 패턴 중 하나라도 포함된 이름을 가진 모든 이미지를 제외합니다.

12.7.2. 사전 캐싱을 사용하여 ClusterGroupUpgrade CR 만들기

단일 노드 OpenShift의 경우 사전 캐시 기능을 사용하면 업데이트가 시작되기 전에 필요한 컨테이너 이미지가 스포크 클러스터에 존재하도록 할 수 있습니다.

참고

사전 캐싱의 경우 TALM은 ClusterGroupUpgrade CR의 spec.remediationStrategy.timeout 값을 사용합니다. 사전 캐싱 작업이 완료될 수 있도록 충분한 시간을 허용하는 시간 초과 값을 설정해야 합니다. 사전 캐싱이 완료된 후 ClusterGroupUpgrade CR을 활성화하면 업데이트에 적합한 기간으로 시간 초과 값을 변경할 수 있습니다.

사전 요구 사항

  • TALM(Topology Aware Lifecycle Manager)을 설치합니다.
  • 하나 이상의 관리형 클러스터를 프로비저닝합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.

프로세스

  1. clustergroupupgrades-group-du.yaml 파일에서 preCaching 필드를 true 로 설정하여 ClusterGroupUpgrade CR의 내용을 저장합니다.

    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: du-upgrade-4918
      namespace: ztp-group-du-sno
    spec:
      preCaching: true 
    1
    
      clusters:
      - cnfdb1
      - cnfdb2
      enable: false
      managedPolicies:
      - du-upgrade-platform-upgrade
      remediationStrategy:
        maxConcurrency: 2
        timeout: 240
    Copy to Clipboard Toggle word wrap
    1
    preCaching 필드가 true 로 설정되어 TALM이 업데이트를 시작하기 전에 컨테이너 이미지를 가져올 수 있습니다.
  2. 사전 캐싱을 시작하려면 다음 명령을 실행하여 ClusterGroupUpgrade CR을 적용하세요.

    $ oc apply -f clustergroupupgrades-group-du.yaml
    Copy to Clipboard Toggle word wrap

검증

  1. 다음 명령을 실행하여 Hub 클러스터에 ClusterGroupUpgrade CR이 있는지 확인합니다.

    $ oc get cgu -A
    Copy to Clipboard Toggle word wrap

    출력 예

    NAMESPACE          NAME              AGE   STATE        DETAILS
    ztp-group-du-sno   du-upgrade-4918   10s   InProgress   Precaching is required and not done 
    1
    Copy to Clipboard Toggle word wrap

    1
    CR이 생성됩니다.
  2. 다음 명령을 실행하여 사전 캐싱 작업의 상태를 확인하세요.

    $ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
    Copy to Clipboard Toggle word wrap

    출력 예

    {
      "conditions": [
        {
          "lastTransitionTime": "2022-01-27T19:07:24Z",
          "message": "Precaching is required and not done",
          "reason": "InProgress",
          "status": "False",
          "type": "PrecachingSucceeded"
        },
        {
          "lastTransitionTime": "2022-01-27T19:07:34Z",
          "message": "Pre-caching spec is valid and consistent",
          "reason": "PrecacheSpecIsWellFormed",
          "status": "True",
          "type": "PrecacheSpecValid"
        }
      ],
      "precaching": {
        "clusters": [
          "cnfdb1" 
    1
    
          "cnfdb2"
        ],
        "spec": {
          "platformImage": "image.example.io"},
        "status": {
          "cnfdb1": "Active"
          "cnfdb2": "Succeeded"}
        }
    }
    Copy to Clipboard Toggle word wrap

    1
    식별된 클러스터 목록을 표시합니다.
  3. 스포크 클러스터에서 다음 명령을 실행하여 사전 캐싱 작업의 상태를 확인하세요.

    $ oc get jobs,pods -n openshift-talo-pre-cache
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                  COMPLETIONS   DURATION   AGE
    job.batch/pre-cache   0/1           3m10s      3m10s
    
    NAME                     READY   STATUS    RESTARTS   AGE
    pod/pre-cache--1-9bmlr   1/1     Running   0          3m10s
    Copy to Clipboard Toggle word wrap

  4. 다음 명령을 실행하여 ClusterGroupUpgrade CR의 상태를 확인하세요.

    $ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
    Copy to Clipboard Toggle word wrap

    출력 예

    "conditions": [
        {
          "lastTransitionTime": "2022-01-27T19:30:41Z",
          "message": "The ClusterGroupUpgrade CR has all clusters compliant with all the managed policies",
          "reason": "UpgradeCompleted",
          "status": "True",
          "type": "Ready"
        },
        {
          "lastTransitionTime": "2022-01-27T19:28:57Z",
          "message": "Precaching is completed",
          "reason": "PrecachingCompleted",
          "status": "True",
          "type": "PrecachingSucceeded" 
    1
    
        }
    Copy to Clipboard Toggle word wrap

    1
    사전 캐시 작업이 완료되었습니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat