3.14. 매니페스트 구성 파일


3.14.1. OpenShift Container Platform 매니페스트 만들기

  1. OpenShift Container Platform 매니페스트를 만듭니다.

    $ ./openshift-baremetal-install --dir ~/clusterconfigs create manifests
    Copy to Clipboard Toggle word wrap
    INFO Consuming Install Config from target directory
    WARNING Making control-plane schedulable by setting MastersSchedulable to true for Scheduler cluster settings
    WARNING Discarding the OpenShift Manifest that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
    Copy to Clipboard Toggle word wrap

3.14.2. 선택사항: 연결이 끊긴 클러스터의 NTP 구성

OpenShift Container Platform은 클러스터 노드에 chrony Network Time Protocol(NTP) 서비스를 설치합니다.

OpenShift Container Platform 노드는 올바로 실행되려면 날짜와 시간에 동의해야 합니다. 컴퓨팅 노드가 컨트롤 플레인 노드의 NTP 서버에서 날짜와 시간을 검색할 때 라우팅 가능한 네트워크에 연결되지 않은 클러스터를 설치 및 실행할 수 있으므로 상위 계층 NTP 서버에 액세스할 수 없습니다.

프로세스

  1. 다음 명령을 사용하여 설치 호스트에 Butane을 설치합니다.

    $ sudo dnf -y install butane
    Copy to Clipboard Toggle word wrap
  2. 컨트롤 플레인 노드에 대한 chrony.conf 파일의 콘텐츠를 포함하여 Butane 구성, 99-master-chrony-conf-override.bu를 만듭니다.

    참고

    Butane에 대한 자세한 내용은 “Butane 을 사용하여 머신 구성 생성”을 참조하십시오.

    Butane 구성의 예

    variant: openshift
    version: 4.16.0
    metadata:
      name: 99-master-chrony-conf-override
      labels:
        machineconfiguration.openshift.io/role: master
    storage:
      files:
        - path: /etc/chrony.conf
          mode: 0644
          overwrite: true
          contents:
            inline: |
              # Use public servers from the pool.ntp.org project.
              # Please consider joining the pool (https://www.pool.ntp.org/join.html).
    
              # The Machine Config Operator manages this file
              server openshift-master-0.<cluster-name>.<domain> iburst 
    1
    
              server openshift-master-1.<cluster-name>.<domain> iburst
              server openshift-master-2.<cluster-name>.<domain> iburst
    
              stratumweight 0
              driftfile /var/lib/chrony/drift
              rtcsync
              makestep 10 3
              bindcmdaddress 127.0.0.1
              bindcmdaddress ::1
              keyfile /etc/chrony.keys
              commandkey 1
              generatecommandkey
              noclientlog
              logchange 0.5
              logdir /var/log/chrony
    
              # Configure the control plane nodes to serve as local NTP servers
              # for all compute nodes, even if they are not in sync with an
              # upstream NTP server.
    
              # Allow NTP client access from the local network.
              allow all
              # Serve time even if not synchronized to a time source.
              local stratum 3 orphan
    Copy to Clipboard Toggle word wrap

    1
    <cluster-name>을 클러스터 이름으로 바꾸고 <domain>을 정규화된 도메인 이름으로 교체해야 합니다.
  3. Butane을 사용하여 컨트롤 플레인 노드에 전달할 구성이 포함된 MachineConfig 파일 99-master-chrony-conf-override.yaml을 생성합니다.

    $ butane 99-master-chrony-conf-override.bu -o 99-master-chrony-conf-override.yaml
    Copy to Clipboard Toggle word wrap
  4. 컨트롤 플레인 노드의 NTP 서버를 참조하는 컴퓨팅 노드의 chrony.conf 파일의 내용을 포함하여 Butane 구성 99-worker-chrony-conf-override.bu 를 만듭니다.

    Butane 구성의 예

    variant: openshift
    version: 4.16.0
    metadata:
      name: 99-worker-chrony-conf-override
      labels:
        machineconfiguration.openshift.io/role: worker
    storage:
      files:
        - path: /etc/chrony.conf
          mode: 0644
          overwrite: true
          contents:
            inline: |
              # The Machine Config Operator manages this file.
              server openshift-master-0.<cluster-name>.<domain> iburst 
    1
    
              server openshift-master-1.<cluster-name>.<domain> iburst
              server openshift-master-2.<cluster-name>.<domain> iburst
    
              stratumweight 0
              driftfile /var/lib/chrony/drift
              rtcsync
              makestep 10 3
              bindcmdaddress 127.0.0.1
              bindcmdaddress ::1
              keyfile /etc/chrony.keys
              commandkey 1
              generatecommandkey
              noclientlog
              logchange 0.5
              logdir /var/log/chrony
    Copy to Clipboard Toggle word wrap

    1
    <cluster-name>을 클러스터 이름으로 바꾸고 <domain>을 정규화된 도메인 이름으로 교체해야 합니다.
  5. Butane을 사용하여 작업자 노드로 전달할 구성이 포함된 MachineConfig 개체 파일 99-worker-chrony-conf-override.yaml을 생성합니다.

    $ butane 99-worker-chrony-conf-override.bu -o 99-worker-chrony-conf-override.yaml
    Copy to Clipboard Toggle word wrap

3.14.3. 컨트롤 플레인에서 실행되도록 네트워크 구성 요소 구성

컨트롤 플레인 노드에서 독점적으로 실행되도록 네트워킹 구성 요소를 구성할 수 있습니다. 기본적으로 OpenShift Container Platform에서는 머신 구성 풀의 모든 노드가 ingressVIP 가상 IP 주소를 호스팅할 수 있습니다. 그러나 일부 환경에서는 컨트롤 플레인 노드의 별도의 서브넷에 컴퓨팅 노드를 배포합니다. 이 경우 컨트롤 플레인 노드에서 실행되도록 ingressVIP 가상 IP 주소를 구성해야 합니다.

중요

별도의 서브넷에 원격 노드를 배포할 때 컨트롤 플레인 노드에 독점적으로 ingressVIP 가상 IP 주소를 배치해야 합니다.

프로세스

  1. install-config.yaml 파일을 저장하는 디렉터리로 변경합니다.

    $ cd ~/clusterconfigs
    Copy to Clipboard Toggle word wrap
  2. manifests 하위 디렉터리로 전환합니다.

    $ cd manifests
    Copy to Clipboard Toggle word wrap
  3. cluster-network-avoid-workers-99-config.yaml이라는 파일을 생성합니다.

    $ touch cluster-network-avoid-workers-99-config.yaml
    Copy to Clipboard Toggle word wrap
  4. 편집기에서 cluster-network-avoid-workers-99-config.yaml 파일을 열고 Operator 구성을 설명하는 CR(사용자 정의 리소스)을 입력합니다.

    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfig
    metadata:
      name: 50-worker-fix-ipi-rwn
      labels:
        machineconfiguration.openshift.io/role: worker
    spec:
      config:
        ignition:
          version: 3.2.0
        storage:
          files:
            - path: /etc/kubernetes/manifests/keepalived.yaml
              mode: 0644
              contents:
                source: data:,
    Copy to Clipboard Toggle word wrap

    이 매니페스트는 컨트롤 플레인 노드에 ingressVIP 가상 IP 주소를 배치합니다. 또한 이 매니페스트는 컨트롤 플레인 노드에 다음 프로세스를 배포합니다.

    • openshift-ingress-operator
    • keepalived
  5. cluster-network-avoid-workers-99-config.yaml 파일을 저장합니다.
  6. manifests/cluster-ingress-default-ingresscontroller.yaml 파일을 생성합니다.

    apiVersion: operator.openshift.io/v1
    kind: IngressController
    metadata:
      name: default
      namespace: openshift-ingress-operator
    spec:
      nodePlacement:
        nodeSelector:
          matchLabels:
            node-role.kubernetes.io/master: ""
    Copy to Clipboard Toggle word wrap
  7. manifests 디렉터리를 백업하는 것이 좋습니다. 설치 프로그램은 클러스터를 생성할 때 manifests/ 디렉터리를 삭제합니다.
  8. mastersSchedulable 필드를 true로 설정하여 컨트롤 플레인 노드를 예약할 수 있도록 cluster-scheduler-02-config.yml 매니페스트를 수정합니다. 기본적으로 컨트롤 플레인 노드는 예약할 수 없습니다. 예를 들면 다음과 같습니다.

    $ sed -i "s;mastersSchedulable: false;mastersSchedulable: true;g" clusterconfigs/manifests/cluster-scheduler-02-config.yml
    Copy to Clipboard Toggle word wrap
    참고

    이 절차를 완료한 후 컨트롤 플레인 노드를 예약할 수 없는 경우 클러스터 배포가 실패합니다.

3.14.4. 선택 사항: 컴퓨팅 노드에 라우터 배포

설치 중에 설치 프로그램은 컴퓨팅 노드에 라우터 Pod를 배포합니다. 기본적으로 설치 프로그램은 두 개의 라우터 Pod를 설치합니다. 배포된 클러스터에 OpenShift Container Platform 클러스터 내의 서비스에 대한 외부 트래픽 로드를 처리하기 위해 추가 라우터가 필요한 경우 yaml 파일을 생성하여 적절한 수의 라우터 복제본을 설정할 수 있습니다.

중요

컴퓨팅 노드가 하나만 있는 클러스터를 배포하는 것은 지원되지 않습니다. 라우터 복제본을 수정하면 하나의 컴퓨팅 노드로 배포할 때 성능이 저하된 상태의 문제를 해결할 수 있지만, 클러스터는 Ingress API의 고가용성이 손실되며 프로덕션 환경에 적합하지 않습니다.

참고

기본적으로 설치 프로그램은 두 개의 라우터를 배포합니다. 클러스터에 컴퓨팅 노드가 없는 경우 설치 프로그램은 기본적으로 컨트롤 플레인 노드에 두 개의 라우터를 배포합니다.

프로세스

  1. router-replicas.yaml 파일을 생성합니다.

    apiVersion: operator.openshift.io/v1
    kind: IngressController
    metadata:
      name: default
      namespace: openshift-ingress-operator
    spec:
      replicas: <num-of-router-pods>
      endpointPublishingStrategy:
        type: HostNetwork
      nodePlacement:
        nodeSelector:
          matchLabels:
            node-role.kubernetes.io/worker: ""
    Copy to Clipboard Toggle word wrap
    참고

    <num-of-router-pods>를 적절한 값으로 바꿉니다. 하나의 컴퓨팅 노드로만 작업하는 경우 replicas: 1 로 설정합니다. 컴퓨팅 노드를 3개 이상 사용하여 작업하는 경우 필요에 따라 replicas: 를 기본값 2 에서 늘릴 수 있습니다.

  2. router-replicas.yaml 파일을 clusterconfigs/openshift 디렉터리에 저장하고 복사합니다.

    $ cp ~/router-replicas.yaml clusterconfigs/openshift/99_router-replicas.yaml
    Copy to Clipboard Toggle word wrap

3.14.5. 선택 사항: BIOS 구성

다음 절차에서는 설치 프로세스 중에 BIOS를 구성합니다.

프로세스

  1. 매니페스트를 생성합니다.
  2. 노드에 해당하는 BareMetalHost 리소스 파일을 수정합니다.

    $ vim clusterconfigs/openshift/99_openshift-cluster-api_hosts-*.yaml
    Copy to Clipboard Toggle word wrap
  3. BareMetalHost 리소스의 spec 섹션에 BIOS 구성을 추가합니다.

    spec:
      firmware:
        simultaneousMultithreadingEnabled: true
        sriovEnabled: true
        virtualizationEnabled: true
    Copy to Clipboard Toggle word wrap
    참고

    Red Hat은 세 가지 BIOS 구성을 지원합니다. BMC 유형 irmc 가 있는 서버만 지원됩니다. 다른 유형의 서버는 현재 지원되지 않습니다.

  4. 클러스터를 생성합니다.

3.14.6. 선택 사항: RAID 구성

다음 절차에서는 설치 프로세스 중에 BMC(Baseboard Management Controller)를 사용하여 독립 디스크(RAID)의 중복 배열을 구성합니다.

참고

노드에 대한 하드웨어 RAID를 구성하려면 노드에 RAID 컨트롤러가 지원되는지 확인합니다. OpenShift Container Platform 4.16은 소프트웨어 RAID를 지원하지 않습니다.

Expand
표 3.8. 벤더의 하드웨어 RAID 지원
vendorBMC 및 프로토콜펌웨어 버전RAID 수준

Fujitsu

iRMC

해당 없음

0, 1, 5, 6, 10

Dell

Redfish를 사용하는 iDRAC

버전 6.10.30.20 이상

0, 1, 5

프로세스

  1. 매니페스트를 생성합니다.
  2. 노드에 해당하는 BareMetalHost 리소스를 수정합니다.

    $ vim clusterconfigs/openshift/99_openshift-cluster-api_hosts-*.yaml
    Copy to Clipboard Toggle word wrap
    참고

    다음 예제에서는 OpenShift Container Platform 4.16이 소프트웨어 RAID를 지원하지 않기 때문에 하드웨어 RAID 구성을 사용합니다.

    1. 특정 RAID 구성을 spec 섹션에 추가한 경우 노드에서 준비 단계에서 원래 RAID 구성을 삭제하고 RAID에서 지정된 구성을 수행합니다. 예를 들면 다음과 같습니다.

      spec:
        raid:
          hardwareRAIDVolumes:
          - level: "0" 
      1
      
            name: "sda"
            numberOfPhysicalDisks: 1
            rotational: true
            sizeGibibytes: 0
      Copy to Clipboard Toggle word wrap
      1
      level 은 필수 필드이며 다른 필드는 선택적 필드입니다.
    2. spec 섹션에 빈 RAID 구성을 추가한 경우 빈 구성으로 인해 노드가 준비 단계에서 원래 RAID 구성을 삭제하지만 새 구성을 수행하지 않습니다. 예를 들면 다음과 같습니다.

      spec:
        raid:
          hardwareRAIDVolumes: []
      Copy to Clipboard Toggle word wrap
    3. spec 섹션에 raid 필드를 추가하지 않으면 원래 RAID 구성이 삭제되지 않으며 새 구성은 수행되지 않습니다.
  3. 클러스터를 생성합니다.

3.14.7. 선택사항: 노드에서 스토리지 구성

MCO(Machine Config Operator)에서 관리하는 MachineConfig 오브젝트를 생성하여 OpenShift Container Platform 노드의 운영 체제를 변경할 수 있습니다.

MachineConfig 사양에는 처음 부팅할 때 머신을 구성하기 위한 ignition 구성이 포함되어 있습니다. 이 config 오브젝트는 OpenShift Container Platform 시스템에서 실행되는 파일, systemd 서비스 및 기타 운영 체제 기능을 수정하는 데 사용할 수 있습니다.

프로세스

ignition config를 사용하여 노드에서 스토리지를 구성합니다. 다음 MachineSet 매니페스트 예제에서는 기본 노드의 장치에 파티션을 추가하는 방법을 보여줍니다. 이 예에서는 설치 전에 매니페스트를 적용하여 기본 노드에 크기가 16GiB인 recovery 라는 파티션을 만듭니다.

  1. custom-partitions.yaml 파일을 생성하고 파티션 레이아웃이 포함된 MachineConfig 오브젝트를 포함합니다.

    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfig
    metadata:
      labels:
        machineconfiguration.openshift.io/role: primary
      name: 10_primary_storage_config
    spec:
      config:
        ignition:
          version: 3.2.0
        storage:
          disks:
            - device: </dev/xxyN>
              partitions:
                - label: recovery
                  startMiB: 32768
                  sizeMiB: 16384
          filesystems:
            - device: /dev/disk/by-partlabel/recovery
              label: recovery
              format: xfs
    Copy to Clipboard Toggle word wrap
  2. custom-partitions.yaml 파일을 clusterconfigs/openshift 디렉터리에 저장하고 복사합니다.

    $ cp ~/<MachineConfig_manifest> ~/clusterconfigs/openshift
    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