16.2. 단일 노드 OpenShift 클러스터를 위한 이미지 기반 설치 준비


단일 노드 OpenShift 클러스터에 대한 이미지 기반 설치를 준비하려면 다음 작업을 완료해야 합니다.

  • Lifecycle Agent를 사용하여 시드 이미지를 생성합니다.
  • 모든 소프트웨어 구성 요소가 필수 버전을 충족하는지 확인합니다. 자세한 내용은 "이미지 기반 설치 및 배포에 대한 소프트웨어 사전 요구 사항"을 참조하십시오.

16.2.1. 라이프사이클 에이전트 설치

초기 클러스터에서 시드 이미지를 생성하려면 Lifecycle Agent를 사용합니다. OpenShift CLI(oc) 또는 웹 콘솔을 사용하여 라이프사이클 에이전트를 설치할 수 있습니다.

16.2.1.1. CLI를 사용하여 라이프사이클 에이전트 설치

OpenShift CLI(oc)를 사용하여 Lifecycle Agent를 설치할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 사용자로 로그인했습니다.

프로세스

  1. Lifecycle Agent에 대한 Namespace 오브젝트 YAML 파일을 생성합니다.

    apiVersion: v1
    kind: Namespace
    metadata:
      name: openshift-lifecycle-agent
      annotations:
        workload.openshift.io/allowed: management
    1. 다음 명령을 실행하여 네임스페이스 CR을 생성합니다.

      $ oc create -f <namespace_filename>.yaml
  2. Lifecycle Agent에 대한 OperatorGroup 오브젝트 YAML 파일을 생성합니다.

    apiVersion: operators.coreos.com/v1
    kind: OperatorGroup
    metadata:
      name: openshift-lifecycle-agent
      namespace: openshift-lifecycle-agent
    spec:
      targetNamespaces:
      - openshift-lifecycle-agent
    1. 다음 명령을 실행하여 OperatorGroup CR을 생성합니다.

      $ oc create -f <operatorgroup_filename>.yaml
  3. Lifecycle Agent에 대한 서브스크립션 CR을 생성합니다.

    apiVersion: operators.coreos.com/v1
    kind: Subscription
    metadata:
      name: openshift-lifecycle-agent-subscription
      namespace: openshift-lifecycle-agent
    spec:
      channel: "stable"
      name: lifecycle-agent
      source: redhat-operators
      sourceNamespace: openshift-marketplace
    1. 다음 명령을 실행하여 서브스크립션 CR을 생성합니다.

      $ oc create -f <subscription_filename>.yaml

검증

  1. 설치에 성공했는지 확인하려면 다음 명령을 실행하여 CSV 리소스를 검사합니다.

    $ oc get csv -n openshift-lifecycle-agent

    출력 예

    NAME                              DISPLAY                     VERSION               REPLACES                           PHASE
    lifecycle-agent.v4.17.0           Openshift Lifecycle Agent   4.17.0                Succeeded

  2. 다음 명령을 실행하여 Lifecycle Agent가 실행 중인지 확인합니다.

    $ oc get deploy -n openshift-lifecycle-agent

    출력 예

    NAME                                 READY   UP-TO-DATE   AVAILABLE   AGE
    lifecycle-agent-controller-manager   1/1     1            1           14s

16.2.1.2. 웹 콘솔을 사용하여 라이프사이클 에이전트 설치

OpenShift Container Platform 웹 콘솔을 사용하여 Lifecycle Agent를 설치할 수 있습니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 로그인했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 Operator OperatorHub로 이동합니다.
  2. 사용 가능한 Operator 목록에서 Lifecycle Agent 를 검색한 다음 설치를 클릭합니다.
  3. Operator 설치 페이지의 클러스터의 특정 네임스페이스에서 openshift-lifecycle-agent 를 선택합니다.
  4. 설치를 클릭합니다.

검증

  1. 설치에 성공했는지 확인하려면 다음을 수행하십시오.

    1. Operators 설치된 Operators를 클릭합니다.
    2. Lifecycle Agent가 openshift-lifecycle-agent 프로젝트에 InstallSucceeded 상태로 나열되어 있는지 확인합니다.

      참고

      설치 중에 Operator는 실패 상태를 표시할 수 있습니다. 나중에 InstallSucceeded 메시지와 함께 설치에 성공하면 이 실패 메시지를 무시할 수 있습니다.

Operator가 성공적으로 설치되지 않은 경우 다음을 수행하십시오.

  1. Operator 설치된 Operator 를 클릭하고 Operator 서브스크립션설치 계획 탭의 상태에 장애 또는 오류가 있는지 검사합니다.
  2. 워크로드 포드 를 클릭하고 openshift-lifecycle-agent 프로젝트에서 Pod 로그를 확인합니다.

16.2.2. ostree stateroots 간의 공유 컨테이너 파티션 구성

중요

설치 시 이 절차를 완료해야 합니다.

MachineConfig 를 시드 클러스터에 적용하여 별도의 파티션을 만들고 사전 설치 프로세스 중에 사용할 두 개의 ostree stateroot 간에 /var/lib/containers 파티션을 공유합니다.

프로세스

  • MachineConfig 를 적용하여 별도의 파티션을 만듭니다.

    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfig
    metadata:
      labels:
        machineconfiguration.openshift.io/role: master
      name: 98-var-lib-containers-partitioned
    spec:
      config:
        ignition:
          version: 3.2.0
        storage:
          disks:
            - device: /dev/disk/by-path/pci-<root_disk> 1
              partitions:
                - label: var-lib-containers
                  startMiB: <start_of_partition> 2
                  sizeMiB: <partition_size> 3
          filesystems:
            - device: /dev/disk/by-partlabel/var-lib-containers
              format: xfs
              mountOptions:
                - defaults
                - prjquota
              path: /var/lib/containers
              wipeFilesystem: true
        systemd:
          units:
            - contents: |-
                # Generated by Butane
                [Unit]
                Before=local-fs.target
                Requires=systemd-fsck@dev-disk-by\x2dpartlabel-var\x2dlib\x2dcontainers.service
                After=systemd-fsck@dev-disk-by\x2dpartlabel-var\x2dlib\x2dcontainers.service
    
                [Mount]
                Where=/var/lib/containers
                What=/dev/disk/by-partlabel/var-lib-containers
                Type=xfs
                Options=defaults,prjquota
    
                [Install]
                RequiredBy=local-fs.target
              enabled: true
              name: var-lib-containers.mount
    1
    root 디스크를 지정합니다.
    2
    MiB로 파티션의 시작을 지정합니다. 값이 너무 작으면 설치에 실패합니다.
    3
    사전 캐시된 이미지에 적절한 디스크 공간을 확보하려면 500GB 파티션의 최소 크기를 지정합니다. 값이 너무 작으면 설치 후 배포가 실패합니다.

16.2.3. 시드 이미지 구성

베어 메탈 호스트와 동일한 하드웨어를 사용하고 대상 클러스터 구성이 유사한 단일 노드 OpenShift 클러스터에서 시드 이미지를 생성할 수 있습니다. 그러나 시드 클러스터에서 생성된 시드 이미지에는 클러스터별 구성이 포함될 수 없습니다.

다음 표에는 시드 이미지에 포함되어야 하며 포함하지 않아야 하는 구성 요소, 리소스 및 구성이 나열되어 있습니다.

표 16.2. 시드 이미지 구성
클러스터 구성시드 이미지에 포함

성능 프로필

제공됨

대상 클러스터의 MachineConfig 리소스

제공됨

IP 버전 [1]

제공됨

Lifecycle Agent 및 OADP Operator를 포함한 Day 2 Operator 세트

제공됨

연결이 끊긴 레지스트리 설정 [2]

제공됨

유효한 프록시 설정 [3]

제공됨

FIPS 설정

제공됨

대상 클러스터의 크기와 일치하는 컨테이너 스토리지를 위한 기본 디스크의 전용 파티션

제공됨

로컬 볼륨

  • LSO의 LocalVolume 에서 사용되는 StorageClass
  • LSO용 LocalVolume
  • LVMS용 LVMCluster CR

없음

  1. 이번 릴리스에서는 듀얼 스택 네트워킹이 지원되지 않습니다.
  2. 시드 클러스터가 연결이 끊긴 환경에 설치된 경우 대상 클러스터도 연결이 끊긴 환경에 설치해야 합니다.
  3. 시드 및 대상 클러스터의 프록시 구성이 일치하지 않아도 됩니다.

16.2.3.1. RAN DU 프로필을 사용한 시드 이미지 구성

다음 표에는 RAN DU 프로필을 사용할 때 시드 이미지에 포함되어야 하는 구성 요소, 리소스 및 구성이 나열되어 있습니다.

표 16.3. RAN DU 프로필을 사용한 시드 이미지 구성
리소스시드 이미지에 포함

Day 0 설치의 일부로 적용되는 모든 추가 매니페스트

제공됨

모든 Day 2 Operator 서브스크립션

제공됨

DisableOLMPprof.yaml

제공됨

TunedPerformancePatch.yaml

제공됨

PerformanceProfile.yaml

제공됨

SriovOperatorConfig.yaml

제공됨

DisableSnoNetworkDiag.yaml

제공됨

StorageClass.yaml

아니요. StorageLV.yaml에서 사용되는 경우

StorageLV.yaml

없음

StorageLVMCluster.yaml

없음

다음 리소스 및 구성 목록을 추가 매니페스트로 적용하거나 RHACM 정책을 사용하여 적용할 수 있습니다.

  • ClusterLogForwarder.yaml
  • ReduceMonitoringFootprint.yaml
  • SriovFecClusterConfig.yaml
  • PtpOperatorConfigForEvent.yaml
  • DefaultCatsrc.yaml
  • PtpConfig.yaml
  • SriovNetwork.yaml
중요

GitOps ZTP를 사용하는 경우 RHACM 정책을 사용하여 이러한 리소스를 활성화하여 클러스터 라이프사이클 전반에 구성 변경 사항을 적용할 수 있습니다.

16.2.4. Lifecycle Agent를 사용하여 시드 이미지 생성

Lifecycle Agent를 사용하여 관리 클러스터에서 시드 이미지를 생성합니다. Operator는 필수 시스템 구성을 확인하고 시드 이미지를 생성하기 전에 필요한 시스템 정리를 수행한 다음 이미지 생성을 시작합니다. 시드 이미지 생성에는 다음 작업이 포함됩니다.

  • 클러스터 Operator 중지
  • 시드 이미지 구성 준비
  • SeedGenerator CR에 지정된 이미지 리포지토리로 시드 이미지를 생성하고 푸시
  • 클러스터 Operator 복원
  • 시드 클러스터 인증서 만료
  • 시드 클러스터에 대한 새 인증서 생성
  • seed 클러스터에서 SeedGenerator CR 복원 및 업데이트

사전 요구 사항

  • Kubernetes Operator의 RHACM 및 다중 클러스터 엔진은 시드 클러스터에 설치되지 않습니다.
  • seed 클러스터에 공유 컨테이너 디렉터리를 구성했습니다.
  • seed 클러스터에 최소 버전의 OADP Operator 및 Lifecycle Agent를 설치했습니다.
  • 영구 볼륨이 시드 클러스터에 구성되지 않았는지 확인합니다.
  • Local Storage Operator가 사용되는 경우 LocalVolume CR이 시드 클러스터에 존재하지 않는지 확인합니다.
  • LVM 스토리지가 사용되는 경우 LVMCluster CR이 시드 클러스터에 존재하지 않는지 확인합니다.
  • OADP가 사용되는 경우 DataProtectionApplication CR이 시드 클러스터에 존재하지 않는지 확인합니다.

프로세스

  1. 관리 클러스터를 허브에서 분리하여 시드 이미지에 없는 초기 클러스터에서 RHACM 관련 리소스를 삭제합니다.

    1. 다음 명령을 실행하여 시드 클러스터를 수동으로 분리합니다.

      $ oc delete managedcluster sno-worker-example
      1. 관리 클러스터가 제거될 때까지 기다립니다. 클러스터가 제거된 후 적절한 SeedGenerator CR을 생성합니다. Lifecycle Agent는 RHACM 아티팩트를 정리합니다.
    2. GitOps ZTP를 사용하는 경우 kustomization.yaml 에서 seed 클러스터의 SiteConfig CR을 제거하여 클러스터를 분리합니다.

      1. 여러 SiteConfig CR을 참조하는 kustomization.yaml 파일이 있는 경우 kustomization.yaml 에서 시드 클러스터의 siteConfig CR을 제거합니다.

        apiVersion: kustomize.config.k8s.io/v1beta1
        kind: Kustomization
        
        generators:
        #- example-seed-sno1.yaml
        - example-target-sno2.yaml
        - example-target-sno3.yaml
      2. 하나의 SiteConfig CR을 참조하는 kustomization.yaml 이 있는 경우 kustomization.yaml 에서 시드 클러스터의 siteConfig CR을 제거하고 generators: {} 행을 추가합니다.

        apiVersion: kustomize.config.k8s.io/v1beta1
        kind: Kustomization
        
        generators: {}
      3. Git 리포지토리에서 kustomization.yaml 변경 사항을 커밋하고 변경 사항을 리포지토리로 내보냅니다.

        ArgoCD 파이프라인은 변경 사항을 감지하고 관리 클러스터를 제거합니다.

  2. 시드 이미지를 레지스트리로 푸시할 수 있도록 Secret 오브젝트를 생성합니다.

    1. 다음 명령을 실행하여 인증 파일을 생성합니다.

      $ MY_USER=myuserid
      $ AUTHFILE=/tmp/my-auth.json
      $ podman login --authfile ${AUTHFILE} -u ${MY_USER} quay.io/${MY_USER}
      $ base64 -w 0 ${AUTHFILE} ; echo
    2. openshift-lifecycle-agent 네임스페이스의 seedgen 이라는 Secret YAML 파일의 seedAuth 필드에 출력을 복사합니다.

      apiVersion: v1
      kind: Secret
      metadata:
        name: seedgen 1
        namespace: openshift-lifecycle-agent
      type: Opaque
      data:
        seedAuth: <encoded_AUTHFILE> 2
      1
      Secret 리소스에는 name: seedgennamespace: openshift-lifecycle-agent 필드가 있어야 합니다.
      2
      생성된 시드 이미지를 푸시하기 위해 레지스트리에 대한 쓰기 액세스에 대한 base64로 인코딩된 authfile을 지정합니다.
    3. 다음 명령을 실행하여 보안을 적용합니다.

      $ oc apply -f secretseedgenerator.yaml
  3. SeedGenerator CR을 생성합니다.

    apiVersion: lca.openshift.io/v1
    kind: SeedGenerator
    metadata:
      name: seedimage 1
    spec:
      seedImage: <seed_container_image> 2
    1
    SeedGenerator CR의 이름은 seedimage 여야 합니다.
    2
    컨테이너 이미지 URL을 지정합니다(예: quay.io/example/seed-container-image:<tag> ). < seed_cluster_name>:<ocp_version > 형식을 사용하는 것이 좋습니다.
  4. 다음 명령을 실행하여 시드 이미지를 생성합니다.

    $ oc apply -f seedgenerator.yaml
    중요

    클러스터가 재부팅되고 API 기능이 손실되는 동안 Lifecycle Agent에서 시드 이미지를 생성합니다. SeedGenerator CR을 적용하면 kubelet 및 CRI-O 작업이 중지되고 이미지 생성이 시작됩니다.

더 많은 시드 이미지를 생성하려면 시드 이미지를 생성하려는 버전으로 새 시드 클러스터를 프로비저닝해야 합니다.

검증

  • 클러스터가 복구되고 사용 가능한 후 다음 명령을 실행하여 SeedGenerator CR의 상태를 확인할 수 있습니다.

    $ oc get seedgenerator -o yaml

    출력 예

    status:
      conditions:
      - lastTransitionTime: "2024-02-13T21:24:26Z"
        message: Seed Generation completed
        observedGeneration: 1
        reason: Completed
        status: "False"
        type: SeedGenInProgress
      - lastTransitionTime: "2024-02-13T21:24:26Z"
        message: Seed Generation completed
        observedGeneration: 1
        reason: Completed
        status: "True"
        type: SeedGenCompleted 1
      observedGeneration: 1

    1
    시드 이미지 생성이 완료되었습니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.