7.4. 클러스터 외부 계층 지정을 사용하여 사용자 정의 계층 이미지 적용


특정 머신 구성 풀의 노드에서 RHCOS(Red Hat Enterprise Linux CoreOS) 이미지 계층을 쉽게 구성할 수 있습니다. MCO(Machine Config Operator)는 새 사용자 정의 계층 이미지로 노드를 재부팅하여 기본 RHCOS(Red Hat Enterprise Linux CoreOS) 이미지를 덮어씁니다.

클러스터에 사용자 정의 계층 이미지를 적용하려면 클러스터가 액세스할 수 있는 리포지토리에 사용자 정의 계층 이미지가 있어야 합니다. 그런 다음 사용자 지정 계층화된 이미지를 가리키는 MachineConfig 오브젝트를 만듭니다. 구성할 각 머신 구성 풀에 대해 별도의 MachineConfig 오브젝트가 필요합니다.

중요

사용자 정의 계층 이미지를 구성하면 OpenShift Container Platform에서 더 이상 사용자 정의 계층 이미지를 사용하는 노드를 자동으로 업데이트하지 않습니다. 필요에 따라 노드를 수동으로 업데이트해야 합니다. 사용자 정의 계층을 롤백하면 OpenShift Container Platform에서 노드를 자동으로 업데이트합니다. 사용자 지정 계층화된 이미지를 사용하는 노드 업데이트에 대한 중요한 정보는 다음 추가 리소스 섹션을 참조하십시오.

사전 요구 사항

  • 태그가 아닌 OpenShift Container Platform 이미지 다이제스트를 기반으로 하는 사용자 정의 계층 이미지를 생성해야 합니다.

    참고

    나머지 클러스터에 설치된 동일한 기본 RHCOS 이미지를 사용해야 합니다. oc adm release info --image-for rhel-coreos 명령을 사용하여 클러스터에서 사용 중인 기본 이미지를 가져옵니다.

    예를 들어 다음 Containerfile은 OpenShift Container Platform 4.16 이미지에서 사용자 정의 계층 이미지를 생성하고 CentOS 9 Stream의 커널 패키지를 덮어씁니다.

    사용자 정의 계층 이미지의 컨테이너 파일 예

    # Using a 4.16.0 image
    FROM quay.io/openshift-release/ocp-release@sha256... 
    1
    
    #Install hotfix rpm
    RUN rpm-ostree override replace http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/kernel-{,core-,modules-,modules-core-,modules-extra-}5.14.0-295.el9.x86_64.rpm && \ 
    2
    
        rpm-ostree cleanup -m && \
        ostree container commit
    Copy to Clipboard Toggle word wrap

    1
    클러스터의 RHCOS 기본 이미지를 지정합니다.
    2
    커널 패키지를 대체합니다.
    참고

    Containerfile을 생성하는 방법에 대한 지침은 이 문서의 범위를 벗어납니다.

  • 사용자 정의 계층 이미지를 빌드하는 프로세스는 클러스터 외부에서 수행되므로 Podman 또는 Buildah와 함께 --authfile /path/to/pull-secret 옵션을 사용해야 합니다. 또는 이러한 툴에서 풀 시크릿을 자동으로 읽을 수 있도록 기본 파일 위치( ~/.docker/config.json,$XDG_RUNTIME_DIR/containers/auth.json,~/.docker/config.json 또는 ~/.dockercfg ) 중 하나에 추가할 수 있습니다. 자세한 내용은 containers-auth.json 도움말 페이지를 참조하십시오.
  • 사용자 정의 계층 이미지를 클러스터가 액세스할 수 있는 리포지토리로 푸시해야 합니다.

프로세스

  1. 머신 구성 파일을 생성합니다.

    1. 다음과 유사한 YAML 파일을 생성합니다.

      apiVersion: machineconfiguration.openshift.io/v1
      kind: MachineConfig
      metadata:
        labels:
          machineconfiguration.openshift.io/role: worker 
      1
      
        name: os-layer-custom
      spec:
        osImageURL: quay.io/my-registry/custom-image@sha256... 
      2
      Copy to Clipboard Toggle word wrap
      1
      사용자 지정 계층 이미지를 적용할 머신 구성 풀을 지정합니다.
      2
      리포지토리의 사용자 지정 계층화된 이미지의 경로를 지정합니다.
    2. MachineConfig 오브젝트를 생성합니다.

      $ oc create -f <file_name>.yaml
      Copy to Clipboard Toggle word wrap
      중요

      클러스터에 롤아웃하기 전에 프로덕션 환경 외부의 이미지를 테스트하는 것이 좋습니다.

검증

다음 점검 중 하나를 수행하여 사용자 정의 계층 이미지가 적용되었는지 확인할 수 있습니다.

  1. 작업자 머신 구성 풀이 새 머신 구성을 사용하여 롤아웃되었는지 확인합니다.

    1. 새 머신 구성이 생성되었는지 확인합니다.

      $ oc get mc
      Copy to Clipboard Toggle word wrap

      샘플 출력

      NAME                                               GENERATEDBYCONTROLLER                      IGNITIONVERSION   AGE
      00-master                                          5bdb57489b720096ef912f738b46330a8f577803   3.2.0             95m
      00-worker                                          5bdb57489b720096ef912f738b46330a8f577803   3.2.0             95m
      01-master-container-runtime                        5bdb57489b720096ef912f738b46330a8f577803   3.2.0             95m
      01-master-kubelet                                  5bdb57489b720096ef912f738b46330a8f577803   3.2.0             95m
      01-worker-container-runtime                        5bdb57489b720096ef912f738b46330a8f577803   3.2.0             95m
      01-worker-kubelet                                  5bdb57489b720096ef912f738b46330a8f577803   3.2.0             95m
      99-master-generated-registries                     5bdb57489b720096ef912f738b46330a8f577803   3.2.0             95m
      99-master-ssh                                                                                 3.2.0             98m
      99-worker-generated-registries                     5bdb57489b720096ef912f738b46330a8f577803   3.2.0             95m
      99-worker-ssh                                                                                 3.2.0             98m
      os-layer-custom                                                                                                 10s 
      1
      
      rendered-master-15961f1da260f7be141006404d17d39b   5bdb57489b720096ef912f738b46330a8f577803   3.2.0             95m
      rendered-worker-5aff604cb1381a4fe07feaf1595a797e   5bdb57489b720096ef912f738b46330a8f577803   3.2.0             95m
      rendered-worker-5de4837625b1cbc237de6b22bc0bc873   5bdb57489b720096ef912f738b46330a8f577803   3.2.0             4s  
      2
      Copy to Clipboard Toggle word wrap

      1
      새 머신 구성
      2
      새로 렌더링된 머신 구성
    2. 새 머신 구성의 osImageURL 값이 예상 이미지를 가리키는지 확인합니다.

      $ oc describe mc rendered-master-4e8be63aef68b843b546827b6ebe0913
      Copy to Clipboard Toggle word wrap

      출력 예

      Name:         rendered-master-4e8be63aef68b843b546827b6ebe0913
      Namespace:
      Labels:       <none>
      Annotations:  machineconfiguration.openshift.io/generated-by-controller-version: 8276d9c1f574481043d3661a1ace1f36cd8c3b62
                    machineconfiguration.openshift.io/release-image-version: 4.16.0-ec.3
      API Version:  machineconfiguration.openshift.io/v1
      Kind:         MachineConfig
      ...
        Os Image URL: quay.io/my-registry/custom-image@sha256...
      Copy to Clipboard Toggle word wrap

    3. 연결된 머신 구성 풀이 새 머신 구성을 사용하여 업데이트되었는지 확인합니다.

      $ oc get mcp
      Copy to Clipboard Toggle word wrap

      샘플 출력

      NAME     CONFIG                                             UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
      master   rendered-master-6faecdfa1b25c114a58cf178fbaa45e2   True      False      False      3              3                   3                     0                      39m
      worker   rendered-worker-6b000dbc31aaee63c6a2d56d04cd4c1b   False     True       False      3              0                   0                     0                      39m 
      1
      Copy to Clipboard Toggle word wrap

      1
      UPDATING 필드가 True 이면 머신 구성 풀이 새 머신 구성으로 업데이트됩니다. 필드가 False 가 되면 작업자 머신 구성 풀이 새 머신 구성에 롤아웃됩니다.
    4. 노드를 확인하여 노드의 스케줄링이 비활성화되어 있는지 확인합니다. 변경 사항이 적용 중임을 나타냅니다.

      $ oc get nodes
      Copy to Clipboard Toggle word wrap

      출력 예

      NAME                                         STATUS                     ROLES                  AGE   VERSION
      ip-10-0-148-79.us-west-1.compute.internal    Ready                      worker                 32m   v1.29.4
      ip-10-0-155-125.us-west-1.compute.internal   Ready,SchedulingDisabled   worker                 35m   v1.29.4
      ip-10-0-170-47.us-west-1.compute.internal    Ready                      control-plane,master   42m   v1.29.4
      ip-10-0-174-77.us-west-1.compute.internal    Ready                      control-plane,master   42m   v1.29.4
      ip-10-0-211-49.us-west-1.compute.internal    Ready                      control-plane,master   42m   v1.29.4
      ip-10-0-218-151.us-west-1.compute.internal   Ready                      worker                 31m   v1.29.4
      Copy to Clipboard Toggle word wrap

  2. 노드가 Ready 상태가 되면 노드가 사용자 정의 계층화된 이미지를 사용하고 있는지 확인합니다.

    1. 노드에 대한 oc 디버그 세션을 엽니다. 예를 들면 다음과 같습니다.

      $ oc debug node/ip-10-0-155-125.us-west-1.compute.internal
      Copy to Clipboard Toggle word wrap
    2. 디버그 쉘 내에서 /host를 root 디렉터리로 설정합니다.

      sh-4.4# chroot /host
      Copy to Clipboard Toggle word wrap
    3. rpm-ostree status 명령을 실행하여 사용자 정의 계층화된 이미지가 사용 중인지 확인합니다.

      sh-4.4# sudo rpm-ostree status
      Copy to Clipboard Toggle word wrap

      출력 예

      State: idle
      Deployments:
      * ostree-unverified-registry:quay.io/my-registry/...
                         Digest: sha256:...
      Copy to Clipboard Toggle word wrap

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat