에이전트 기반 설치 관리자를 사용하여 온프레미스 클러스터 설치


OpenShift Container Platform 4.15

에이전트 기반 설치 관리자를 사용하여 온프레미스 OpenShift Container Platform 클러스터 설치

Red Hat OpenShift Documentation Team

초록

이 문서에서는 에이전트 기반 설치 관리자를 사용하여 온프레미스 OpenShift Container Platform 클러스터를 설치하는 방법을 설명합니다.

1장. 에이전트 기반 설치 관리자를 사용하여 설치 준비

1.1. 에이전트 기반 설치 관리자 정보

에이전트 기반 설치 방법은 원하는 방식으로 온-프레미스 서버를 부팅할 수 있는 유연성을 제공합니다.The Agent-based installation method provides the flexibility to boot your on-premises servers in any way that you choose. 지원 설치 서비스를 쉽게 사용할 수 있는 기능과 Air-gapped 환경을 포함하여 오프라인으로 실행할 수 있는 기능을 결합합니다. 에이전트 기반 설치는 OpenShift Container Platform 설치 프로그램의 하위 명령입니다. 사용 가능한 릴리스 이미지와 함께 OpenShift Container Platform 클러스터를 배포하는 데 필요한 모든 정보가 포함된 부팅 가능한 ISO 이미지를 생성합니다.

구성은 설치 관리자 프로비저닝 인프라 및 사용자 프로비저닝 인프라 설치 방법과 동일한 형식으로 되어 있습니다. 에이전트 기반 설치 관리자는 선택적으로 ZTP(Zero Touch Provisioning) 사용자 지정 리소스를 생성하거나 허용할 수 있습니다. ZTP를 사용하면 베어 메탈 장비의 선언적 구성으로 새로운 에지 사이트를 프로비저닝할 수 있습니다.

표 1.1. 에이전트 기반 설치 관리자 지원 아키텍처
CPU 아키텍처연결된 설치연결이 해제된 설치주석

64-bit x86

 

64비트 ARM

 

ppc64le

 

s390x

ISO 부팅은 지원되지 않습니다. 대신 PXE 자산을 사용합니다.

1.2. 에이전트 기반 설치 관리자 이해

OpenShift Container Platform 사용자는 연결이 끊긴 환경에서 지원 설치 관리자 호스팅 서비스의 이점을 활용할 수 있습니다.

에이전트 기반 설치는 지원 검색 에이전트와 지원 서비스가 포함된 부팅 가능한 ISO로 구성됩니다. 둘 다 클러스터 설치를 수행하는 데 필요하지만 두 번째는 호스트 중 하나에서만 실행됩니다.

참고

현재 IBM Z® (s390x) 아키텍처에서는 ISO 부팅이 지원되지 않습니다. 권장 방법은 추가 커널 인수를 지정해야 하는 PXE 자산을 사용하는 것입니다.

openshift-install agent create image 하위 명령은 사용자가 제공하는 입력을 기반으로 임시 ISO를 생성합니다. 다음 매니페스트를 통해 입력을 제공하도록 선택할 수 있습니다.

기본 설정:

  • install-config.yaml
  • agent-config.yaml

또는

선택 사항: ZTP 매니페스트

  • cluster-manifests/cluster-deployment.yaml
  • cluster-manifests/agent-cluster-install.yaml
  • cluster-manifests/pull-secret.yaml
  • cluster-manifests/infraenv.yaml
  • cluster-manifests/cluster-image-set.yaml
  • cluster-manifests/nmstateconfig.yaml
  • mirror/registries.conf
  • mirror/ca-bundle.crt

1.2.1. 에이전트 기반 설치 프로그램 워크플로

컨트롤 플레인 호스트 중 하나는 부팅 프로세스 시작 시 지원 서비스를 실행하고 결국 부트스트랩 호스트가 됩니다. 이 노드를 rendezvous host (node 0)라고 합니다. 지원 서비스를 사용하면 모든 호스트가 요구 사항을 충족하고 OpenShift Container Platform 클러스터 배포를 트리거합니다. 모든 노드에는 디스크에 기록된 RHCOS(Red Hat Enterprise Linux CoreOS) 이미지가 있습니다. 부트스트랩이 아닌 노드가 재부팅되고 클러스터 배포를 시작합니다. 노드가 재부팅되면 rendezvous 호스트가 재부팅되고 클러스터에 참여합니다. 부트스트랩이 완료되고 클러스터가 배포됩니다.

그림 1.1. 노드 설치 워크플로

에이전트 기반 설치 프로그램 워크플로

openshift-install agent create image 하위 명령을 통해 다음 토폴로지에 대해 연결이 끊긴 OpenShift Container Platform 클러스터를 설치할 수 있습니다.

  • 단일 노드 OpenShift Container Platform 클러스터(SNO): 마스터와 작업자 둘 다인 노드입니다.
  • 3-노드 OpenShift Container Platform 클러스터 : 작업자 노드이기도 하는 마스터 노드가 3개인 컴팩트 클러스터입니다.
  • 고가용성 OpenShift Container Platform 클러스터(HA): 여러 개의 작업자 노드가 있는 마스터 노드 3개

1.3. FIPS 컴플라이언스 정보

많은 OpenShift Container Platform 고객은 시스템을 프로덕션 환경에 도입하기 전에 일정 수준의 규제 준비 또는 컴플라이언스를 갖춰야 합니다. 이러한 규정 준비는 국가 표준, 산업 표준 또는 조직의 기업 거버넌스 프레임워크에 따라 규정될 수 있습니다. FIPS(Federal Information Processing Standards) 규정 준수는 노드에서 지원되는 암호화 기술만 허용되도록 매우 안전한 환경에서 필요한 가장 중요한 구성 요소 중 하나입니다.

중요

클러스터의 FIPS 모드를 활성화하려면 FIPS 모드에서 작동하도록 구성된 RHEL(Red Hat Enterprise Linux) 컴퓨터에서 설치 프로그램을 실행해야 합니다. RHEL에서 FIPS 모드 구성에 대한 자세한 내용은 FIPS 모드에서 시스템 설치를 참조하십시오. FIPS 모드에서 부팅된 RHEL(Red Hat Enterprise Linux CoreOS) 또는 RHCOS(Red Hat Enterprise Linux CoreOS)를 실행하는 경우 OpenShift Container Platform 코어 구성 요소는 x86_64, ppc64le 및 s390x 아키텍처에서만 FIPS 140-2/140-3 Validation에 대해 NIST에 제출된 RHEL 암호화 라이브러리를 사용합니다.

1.4. 에이전트 기반 설치 관리자를 통한 FIPS 구성

클러스터 배포 중에 RHCOS(Red Hat Enterprise Linux CoreOS) 시스템이 클러스터에 배포될 때 FIPS(Federal Information Processing Standards) 변경 사항이 적용됩니다. RHEL(Red Hat Enterprise Linux) 머신의 경우 작업자 시스템으로 사용하려는 시스템에 운영 체제를 설치할 때 FIPS 모드를 활성화해야 합니다.

install-config.yamlagent-config.yaml 의 기본 방법을 통해 FIPS 모드를 활성화할 수 있습니다.

  1. install-config.yaml 파일에서 fips 필드의 값을 True 로 설정해야 합니다.

    샘플 install-config.yaml.file

    apiVersion: v1
    baseDomain: test.example.com
    metadata:
      name: sno-cluster
    fips: True

  2. 선택 사항: GitOps ZTP 매니페스트를 사용하는 경우 agent-cluster-install.yaml 파일의 Agent-install.openshift.io/install-config-overrides 필드에서 fips 값을 True 로 설정해야 합니다.

    agent-cluster-install.yaml 파일 샘플

    apiVersion: extensions.hive.openshift.io/v1beta1
    kind: AgentClusterInstall
    metadata:
      annotations:
        agent-install.openshift.io/install-config-overrides: '{"fips": True}'
      name: sno-cluster
      namespace: sno-cluster-test

1.5. 호스트 구성

네트워크 구성 및 루트 장치 팁과 같은 agent-config.yaml 파일에서 클러스터의 각 호스트에 대한 추가 구성을 수행할 수 있습니다.

중요

구성하는 각 호스트에 대해 구성 중인 호스트를 지정하려면 호스트에 인터페이스의 MAC 주소를 제공해야 합니다.

1.5.1. 호스트 역할

클러스터의 각 호스트에는 마스터 또는 작업자 의 역할이 할당됩니다. role 매개변수를 사용하여 agent-config.yaml 파일에서 각 호스트에 대한 역할을 정의할 수 있습니다. 호스트에 역할을 할당하지 않으면 설치 중에 역할이 무작위로 할당됩니다.

호스트의 역할을 명시적으로 정의하는 것이 좋습니다.

rendezvousIP마스터 역할이 있는 호스트에 할당되어야 합니다. 이 작업은 수동으로 수행하거나 에이전트 기반 설치 프로그램이 역할을 할당하도록 허용하여 수행할 수 있습니다.

중요

rendezvous 호스트에 대한 마스터 역할을 명시적으로 정의할 필요는 없지만 이 할당과 충돌하는 구성을 생성할 수는 없습니다.

예를 들어 master 역할을 갖도록 명시적으로 정의된 호스트 중 4개의 호스트가 있는 경우 설치 중에 자동으로 worker 역할이 할당된 마지막 호스트는 rendezvous 호스트로 구성할 수 없습니다.

agent-config.yaml 파일 샘플

apiVersion: v1beta1
kind: AgentConfig
metadata:
  name: example-cluster
rendezvousIP: 192.168.111.80
hosts:
  - hostname: master-1
    role: master
    interfaces:
      - name: eno1
        macAddress: 00:ef:44:21:e6:a5
  - hostname: master-2
    role: master
    interfaces:
      - name: eno1
        macAddress: 00:ef:44:21:e6:a6
  - hostname: master-3
    role: master
    interfaces:
      - name: eno1
        macAddress: 00:ef:44:21:e6:a7
  - hostname: worker-1
    role: worker
    interfaces:
      - name: eno1
        macAddress: 00:ef:44:21:e6:a8

1.5.2. 루트 장치 팁 정보

rootDeviceHints 매개 변수를 사용하면 설치 프로그램이 RHCOS (Red Hat Enterprise Linux CoreOS) 이미지를 특정 장치에 프로비저닝할 수 있습니다. 설치 프로그램은 장치를 검색한 순서대로 검사하고 검색된 값을 팁과 비교합니다. 설치 프로그램은 팁과 일치하는 첫 번째 검색된 장치를 사용합니다. 이 설정은 여러 팁을 결합할 수 있지만 장치는 설치 프로그램이이를 선택할 수 있도록 모든 팁과 일치해야 합니다.

표 1.3. 서브 필드
서브 필드설명

deviceName

Linux 장치 이름(예: /dev/vda 또는 /dev/disk/by-path/ )이 포함된 문자열입니다. 스토리지 위치에 /dev/disk/by-path/<device_path > 링크를 사용하는 것이 좋습니다. 팁은 실제 값과 정확히 일치해야 합니다.

hctl

0:0:0:0과 같은 SCSI 버스 주소를 포함하는 문자열. 팁은 실제 값과 정확히 일치해야 합니다.

model

공급 업체별 장치 식별자가 포함된 문자열. 팁은 실제 값의 하위 문자열입니다.

vendor

장치의 공급 업체 또는 제조업체 이름이 포함된 문자열입니다. 팁은 실제 값의 하위 문자열입니다.

serialNumber

장치 일련 번호가 포함된 문자열입니다. 팁은 실제 값과 정확히 일치해야 합니다.

minSizeGigabytes

장치의 최소 크기 (기가 바이트)를 나타내는 정수입니다.

wwn

고유 저장소 식별자를 포함하는 문자열입니다. 팁은 실제 값과 정확히 일치해야 합니다. udevadm 명령을 사용하여 wwn 값을 검색하고 명령이 ID_WWN_WITH_EXTENSION 의 값을 출력하는 경우 이 값을 사용하여 wwn 하위 필드를 지정해야 합니다.

rotational

장치가 회전 디스크 여야하는지 (true) 아닌지 (false)를 나타내는 부울 값입니다.

사용 예

     - name: master-0
       role: master
       rootDeviceHints:
         deviceName: "/dev/sda"

1.6. 네트워킹 정보

초기 부팅 중에 모든 호스트가 지원 서비스를 확인할 수 있도록 에이전트 ISO를 생성할 때 ndezvous IP 를 알고 있어야 합니다. DHCP(Dynamic Host Configuration Protocol) 서버를 사용하여 IP 주소를 할당하는 경우 배포된 컨트롤 플레인의 일부가 될 호스트 중 하나의 IP 주소로 rendezvousIP 필드를 설정해야 합니다. DHCP 서버가 없는 환경에서는 IP 주소를 정적으로 정의할 수 있습니다.

고정 IP 주소 외에도 NMState 형식의 모든 네트워크 구성을 적용할 수 있습니다. 여기에는 VLAN 및 NIC 본딩이 포함됩니다.

1.6.1. DHCP

기본 방법: install-config.yamlagent-config.yaml

rendezvousIP 필드의 값을 지정해야 합니다. networkConfig 필드를 비워 둘 수 있습니다.

agent-config.yaml.file 샘플

apiVersion: v1alpha1
kind: AgentConfig
metadata:
  name: sno-cluster
rendezvousIP: 192.168.111.80 1

1
rendezvous 호스트의 IP 주소입니다.

1.6.2. 정적 네트워킹

  1. 기본 방법: install-config.yamlagent-config.yaml

    agent-config.yaml.file 샘플

    cat > agent-config.yaml << EOF
    apiVersion: v1alpha1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80 1
    hosts:
      - hostname: master-0
        interfaces:
          - name: eno1
            macAddress: 00:ef:44:21:e6:a5 2
        networkConfig:
          interfaces:
            - name: eno1
              type: ethernet
              state: up
              mac-address: 00:ef:44:21:e6:a5
              ipv4:
                enabled: true
                address:
                  - ip: 192.168.111.80 3
                    prefix-length: 23 4
                dhcp: false
          dns-resolver:
            config:
              server:
                - 192.168.111.1 5
          routes:
            config:
              - destination: 0.0.0.0/0
                next-hop-address: 192.168.111.1 6
                next-hop-interface: eno1
                table-id: 254
    EOF

    1
    rendezvousIP 필드에 값을 지정하지 않으면 networkConfig 필드에 지정된 고정 IP 주소에서 하나의 주소가 선택됩니다.
    2
    호스트에 있는 인터페이스의 MAC 주소로, 구성을 적용할 호스트를 결정하는 데 사용됩니다.
    3
    대상 베어 메탈 호스트의 고정 IP 주소입니다.
    4
    대상 베어 메탈 호스트의 고정 IP 주소의 서브넷 접두사입니다.
    5
    대상 베어 메탈 호스트의 DNS 서버입니다.
    6
    노드 트래픽의 다음 홉 주소입니다. 지정된 인터페이스에 설정된 IP 주소와 동일한 서브넷에 있어야 합니다.
  2. 선택적 방법: GitOps ZTP 매니페스트

    GitOps ZTP 사용자 정의 리소스의 선택적 방법은 6개의 사용자 지정 리소스로 구성됩니다. nmstateconfig.yaml 파일에서 고정 IP를 구성할 수 있습니다.

    apiVersion: agent-install.openshift.io/v1beta1
    kind: NMStateConfig
    metadata:
      name: master-0
      namespace: openshift-machine-api
      labels:
        cluster0-nmstate-label-name: cluster0-nmstate-label-value
    spec:
      config:
        interfaces:
          - name: eth0
            type: ethernet
            state: up
            mac-address: 52:54:01:aa:aa:a1
            ipv4:
              enabled: true
              address:
                - ip: 192.168.122.2 1
                  prefix-length: 23 2
              dhcp: false
        dns-resolver:
          config:
            server:
              - 192.168.122.1 3
        routes:
          config:
            - destination: 0.0.0.0/0
              next-hop-address: 192.168.122.1 4
              next-hop-interface: eth0
              table-id: 254
      interfaces:
        - name: eth0
          macAddress: 52:54:01:aa:aa:a1 5
    1
    대상 베어 메탈 호스트의 고정 IP 주소입니다.
    2
    대상 베어 메탈 호스트의 고정 IP 주소의 서브넷 접두사입니다.
    3
    대상 베어 메탈 호스트의 DNS 서버입니다.
    4
    노드 트래픽의 다음 홉 주소입니다. 지정된 인터페이스에 설정된 IP 주소와 동일한 서브넷에 있어야 합니다.
    5
    호스트에 있는 인터페이스의 MAC 주소로, 구성을 적용할 호스트를 결정하는 데 사용됩니다.

rendezvous IP는 config 필드에 지정된 고정 IP 주소에서 선택됩니다.

1.7. platform "none" 옵션을 사용하는 클러스터의 요구 사항

이 섹션에서는 platform none 옵션을 사용하도록 구성된 에이전트 기반 OpenShift Container Platform 설치에 대한 요구 사항에 대해 설명합니다.

중요

가상화 또는 클라우드 환경에서 OpenShift Container Platform 클러스터를 설치하기 전에 테스트되지 않은 플랫폼에 OpenShift Container Platform 배포 지침의 정보를 검토하십시오.

1.7.1. 플랫폼 "none" DNS 요구 사항

OpenShift Container Platform 배포의 경우 다음 구성 요소에 DNS 이름을 확인해야 합니다.

  • Kubernetes API
  • OpenShift Container Platform 애플리케이션 와일드카드
  • 컨트롤 플레인 및 컴퓨팅 시스템

Kubernetes API, 컨트롤 플레인 시스템 및 컴퓨팅 머신에도 역방향 DNS 확인이 필요합니다.

DNS A/AAAA 또는 CNAME 레코드는 이름 확인에 사용되며 PTR 레코드는 역방향 이름 확인에 사용됩니다. RHCOS (Red Hat Enterprise Linux CoreOS)는 DHCP에서 호스트 이름을 제공하지 않는 한 모든 노드의 호스트 이름을 설정할 때 역방향 레코드를 사용하기 때문에 역방향 레코드가 중요합니다. 또한 역방향 레코드는 OpenShift Container Platform이 작동하는 데 필요한 인증서 서명 요청 (CSR)을 생성하는 데 사용됩니다.

참고

DHCP 서버를 사용하여 각 클러스터 노드에 호스트 이름을 제공하는 것이 좋습니다.

다음 DNS 레코드는 platform none 옵션을 사용하는 OpenShift Container Platform 클러스터에 필요하며 설치 전에 있어야 합니다. 각 레코드에서 <cluster_name>은 클러스터 이름이고 <base_domain>install-config.yaml 파일에서 지정하는 기반 도메인입니다. 전체 DNS 레코드는 <component>.<cluster_name>.<base_domain> 형식입니다.

표 1.4. 필수 DNS 레코드
구성 요소레코드설명

Kubernetes API

api.<cluster_name>.<base_domain>.

API 로드 밸런서를 식별하는 DNS A/AAAA 또는 CNAME 레코드와 DNS PTR 레코드입니다. 이 레코드는 클러스터 외부의 클라이언트와 클러스터 내의 모든 노드에서 확인할 수 있어야 합니다.

api-int.<cluster_name>.<base_domain>.

내부적으로 API 로드 밸런서를 식별하는 DNS A/AAAA 또는 CNAME 레코드와 DNS PTR 레코드입니다. 이 레코드는 클러스터 내의 모든 노드에서 확인할 수 있어야 합니다.

중요

API 서버는 Kubernetes에 기록된 호스트 이름으로 작업자 노드를 확인할 수 있어야 합니다. API 서버가 노드 이름을 확인할 수 없는 경우 프록시된 API 호출이 실패할 수 있으며 pod에서 로그를 검색할 수 없습니다.

라우트

*.apps.<cluster_name>.<base_domain>.

애플리케이션 인그레스 로드 밸런서를 참조하는 와일드카드 DNS A/AAA 또는 CNAME 레코드입니다. 애플리케이션 인그레스 로드 밸런서는 Ingress 컨트롤러 Pod를 실행하는 머신을 대상으로 합니다. Ingress 컨트롤러 Pod는 기본적으로 컴퓨팅 머신에서 실행됩니다. 이 레코드는 클러스터 외부의 클라이언트와 클러스터 내의 모든 노드에서 확인할 수 있어야 합니다.

예를 들어 console-openshift-console.apps.<cluster_name>.<base_domain>은 OpenShift Container Platform 콘솔의 와일드카드 경로로 사용됩니다.

컨트롤 플레인 머신

<master><n>.<cluster_name>.<base_domain>.

컨트롤 플레인 노드의 각 머신을 식별하는 DNS A/AAAA 또는 CNAME 레코드와 DNS PTR 레코드입니다. 이 레코드는 클러스터 내의 노드에서 확인할 수 있어야 합니다.

컴퓨팅 머신

<worker><n>.<cluster_name>.<base_domain>.

작업자 노드의 각 머신을 식별하는 DNS A/AAAA 또는 CNAME 레코드와 DNS PTR 레코드입니다. 이 레코드는 클러스터 내의 노드에서 확인할 수 있어야 합니다.

참고

OpenShift Container Platform 4.4 이상에서는 DNS 구성에서 etcd 호스트 및 SRV 레코드를 지정할 필요가 없습니다.

작은 정보

dig 명령을 사용하여 이름과 역방향 이름을 확인할 수 있습니다.

1.7.1.1. 플랫폼 "none" 클러스터의 DNS 구성 예

이 섹션에서는 platform none 옵션을 사용하여 OpenShift Container Platform 배포를 위한 DNS 요구 사항을 충족하는 A 및 PTR 레코드 구성 샘플을 제공합니다. 샘플은 하나의 DNS 솔루션을 선택하기 위한 조언을 제공하기 위한 것이 아닙니다.

이 예제에서 클러스터 이름은 ocp4이고 기본 도메인은 example.com입니다.

플랫폼 "none" 클러스터의 DNS A 레코드 구성 예

다음 예제는 platform none 옵션을 사용하여 클러스터의 이름 확인을 위한 샘플 A 레코드를 보여주는 BIND 영역 파일입니다.

예 1.1. 샘플 DNS 영역 데이터베이스

$TTL 1W
@	IN	SOA	ns1.example.com.	root (
			2019070700	; serial
			3H		; refresh (3 hours)
			30M		; retry (30 minutes)
			2W		; expiry (2 weeks)
			1W )		; minimum (1 week)
	IN	NS	ns1.example.com.
	IN	MX 10	smtp.example.com.
;
;
ns1.example.com.		IN	A	192.168.1.5
smtp.example.com.		IN	A	192.168.1.5
;
helper.example.com.		IN	A	192.168.1.5
helper.ocp4.example.com.	IN	A	192.168.1.5
;
api.ocp4.example.com.		IN	A	192.168.1.5 1
api-int.ocp4.example.com.	IN	A	192.168.1.5 2
;
*.apps.ocp4.example.com.	IN	A	192.168.1.5 3
;
master0.ocp4.example.com.	IN	A	192.168.1.97 4
master1.ocp4.example.com.	IN	A	192.168.1.98 5
master2.ocp4.example.com.	IN	A	192.168.1.99 6
;
worker0.ocp4.example.com.	IN	A	192.168.1.11 7
worker1.ocp4.example.com.	IN	A	192.168.1.7 8
;
;EOF
1
Kubernetes API의 이름 확인을 제공합니다. 레코드는 API 로드 밸런서의 IP 주소를 나타냅니다.
2
Kubernetes API의 이름 확인을 제공합니다. 레코드는 API 로드 밸런서의 IP 주소를 참조하며 내부 클러스터 통신에 사용됩니다.
3
와일드카드 경로의 이름 확인을 제공합니다. 레코드는 애플리케이션 인그레스 로드 밸런서의 IP 주소를 나타냅니다. 애플리케이션 인그레스 로드 밸런서는 Ingress 컨트롤러 Pod를 실행하는 머신을 대상으로 합니다. Ingress 컨트롤러 Pod는 기본적으로 컴퓨팅 머신에서 실행됩니다.
참고

이 예제에서는 Kubernetes API 및 애플리케이션 인그레스 트래픽에 동일한 로드 밸런서를 사용합니다. 프로덕션 시나리오에서는 각각에 대해 개별적으로 로드 밸런서 인프라를 확장할 수 있도록 API 및 애플리케이션 인그레스 로드 밸런서를 별도로 배포할 수 있습니다.

4 5 6
컨트롤 플레인 시스템의 이름 확인을 제공합니다.
7 8
컴퓨팅 시스템의 이름 확인을 제공합니다.

플랫폼 "none" 클러스터의 DNS PTR 레코드 구성 예

다음 예제 BIND 영역 파일은 platform none 옵션을 사용하여 클러스터의 역방향 이름 확인을 위한 샘플 PTR 레코드를 보여줍니다.

예 1.2. 역방향 레코드의 샘플 DNS 영역 데이터베이스

$TTL 1W
@	IN	SOA	ns1.example.com.	root (
			2019070700	; serial
			3H		; refresh (3 hours)
			30M		; retry (30 minutes)
			2W		; expiry (2 weeks)
			1W )		; minimum (1 week)
	IN	NS	ns1.example.com.
;
5.1.168.192.in-addr.arpa.	IN	PTR	api.ocp4.example.com. 1
5.1.168.192.in-addr.arpa.	IN	PTR	api-int.ocp4.example.com. 2
;
97.1.168.192.in-addr.arpa.	IN	PTR	master0.ocp4.example.com. 3
98.1.168.192.in-addr.arpa.	IN	PTR	master1.ocp4.example.com. 4
99.1.168.192.in-addr.arpa.	IN	PTR	master2.ocp4.example.com. 5
;
11.1.168.192.in-addr.arpa.	IN	PTR	worker0.ocp4.example.com. 6
7.1.168.192.in-addr.arpa.	IN	PTR	worker1.ocp4.example.com. 7
;
;EOF
1
Kubernetes API의 역방향 DNS 확인을 제공합니다. PTR 레코드는 API 로드 밸런서의 레코드 이름을 참조합니다.
2
Kubernetes API의 역방향 DNS 확인을 제공합니다. PTR 레코드는 API 로드 밸런서의 레코드 이름을 참조하며 내부 클러스터 통신에 사용됩니다.
3 4 5
컨트롤 플레인 시스템의 역방향 DNS 확인을 제공합니다.
6 7
컴퓨팅 시스템의 역방향 DNS 확인을 제공합니다.
참고

OpenShift Container Platform 애플리케이션 와일드카드에는 PTR 레코드가 필요하지 않습니다.

1.7.2. 플랫폼 "none" 로드 밸런싱 요구 사항

OpenShift Container Platform을 설치하기 전에 API 및 애플리케이션 Ingress 로드 밸런싱 인프라를 프로비저닝해야 합니다. 프로덕션 시나리오에서는 각각에 대해 개별적으로 로드 밸런서 인프라를 확장할 수 있도록 API 및 애플리케이션 인그레스 로드 밸런서를 별도로 배포할 수 있습니다.

참고

이러한 요구 사항은 platform none 옵션을 사용하는 단일 노드 OpenShift 클러스터에는 적용되지 않습니다.

참고

RHEL(Red Hat Enterprise Linux) 인스턴스를 사용하여 API 및 애플리케이션 인그레스 로드 밸런서를 배포하려면 RHEL 서브스크립션을 별도로 구입해야 합니다.

로드 밸런서 인프라는 다음 요구 사항을 충족해야 합니다.

  1. API 로드 밸런서: 플랫폼과 상호 작용하고 플랫폼을 구성할 수 있도록 사용자(인간과 시스템 모두)에게 공통 끝점을 제공합니다. 다음 조건을 설정합니다.

    • Layer 4 로드 밸런싱 전용입니다. 이를 Raw TCP, SSL Passthrough 또는 SSL Bridge 모드라고 합니다. SSL Bridge 모드를 사용하는 경우, API 경로에 대해 SNI(Server Name Indication, 서버 이름 표시)를 활성화해야 합니다.
    • 스테이트리스 로드 밸런싱 알고리즘입니다. 옵션은 로드 밸런서 구현에 따라 달라집니다.
    중요

    API 로드 밸런서에 대한 세션 지속성을 구성하지 마십시오.

    로드 밸런서의 전면과 후면 모두에서 다음 포트를 구성하십시오.

    표 1.5. API 로드 밸런서
    포트백엔드 시스템(풀 멤버)내부외부설명

    6443

    컨트롤 플레인. API 서버 상태 검사 프로브에 대한 /readyz 끝점을 구성해야 합니다.

    X

    X

    Kubernetes API 서버

    22623

    컨트롤 플레인.

    X

     

    시스템 구성 서버

    참고

    API 서버가 /readyz 엔드포인트를 해제하는 시점부터 풀에서 API 서버 인스턴스가 제거되는 시점까지 시간이 30초를 넘지 않도록 로드 밸런서를 구성해야 합니다. /readyz가 오류를 반환하거나 정상 상태가 된 후 정해진 시간 안에 끝점이 제거 또는 추가되어야 합니다. 5초 또는 10초의 프로빙 주기(두 번의 성공적인 요청은 정상 상태, 세 번의 요청은 비정상 상태)는 충분한 테스트를 거친 값입니다.

  2. 애플리케이션 인그레스 로드 밸런서: 클러스터 외부에서 유입되는 애플리케이션 트래픽에 대한 수신 지점을 제공합니다. 인그레스 라우터에 대한 작업 구성이 OpenShift Container Platform 클러스터에 필요합니다.

    다음 조건을 설정합니다.

    • Layer 4 로드 밸런싱 전용입니다. 이를 Raw TCP, SSL Passthrough 또는 SSL Bridge 모드라고 합니다. SSL Bridge 모드를 사용하는 경우 인그레스 경로에 대해 SNI(Server Name Indication, 서버 이름 표시)를 활성화해야 합니다.
    • 사용 가능한 옵션과 플랫폼에서 호스팅되는 애플리케이션 유형에 따라 연결 기반 또는 세션 기반 지속성이 권장됩니다.
    작은 정보

    애플리케이션 Ingress 로드 밸런서에서 클라이언트의 실제 IP 주소를 확인할 수 있는 경우 소스 IP 기반 세션 지속성을 활성화하면 엔드 투 엔드 TLS 암호화를 사용하는 애플리케이션의 성능을 향상시킬 수 있습니다.

    로드 밸런서의 전면과 후면 모두에서 다음 포트를 구성하십시오.

    표 1.6. 애플리케이션 인그레스 로드 밸런서
    포트백엔드 시스템(풀 멤버)내부외부설명

    443

    기본적으로 인그레스 컨트롤러 pod, 컴퓨팅 또는 작업자를 실행하는 시스템입니다.

    X

    X

    HTTPS 트래픽

    80

    기본적으로 인그레스 컨트롤러 pod, 컴퓨팅 또는 작업자를 실행하는 시스템입니다.

    X

    X

    HTTP 트래픽

    참고

    컴퓨팅 노드가 0인 3-노드 클러스터를 배포하는 경우 Ingress 컨트롤러 Pod는 컨트롤 플레인 노드에서 실행됩니다. 3-노드 클러스터 배포에서 HTTP 및 HTTPS 트래픽을 컨트롤 플레인 노드로 라우팅하도록 애플리케이션 인그레스 로드 밸런서를 구성해야 합니다.

1.7.2.1. 플랫폼 "none" 클러스터의 로드 밸런서 구성 예

이 섹션에서는 platform none 옵션을 사용하여 클러스터의 로드 밸런싱 요구 사항을 충족하는 API 및 애플리케이션 인그레스 로드 밸런서 구성 예를 제공합니다. 샘플은 HAProxy 로드 밸런서에 대한 /etc/haproxy/haproxy.cfg 구성입니다. 이 예제에서는 하나의 로드 밸런싱 솔루션을 선택하기 위한 조언을 제공하는 것을 목적으로 하지 않습니다.

이 예제에서는 Kubernetes API 및 애플리케이션 인그레스 트래픽에 동일한 로드 밸런서를 사용합니다. 프로덕션 시나리오에서는 각각에 대해 개별적으로 로드 밸런서 인프라를 확장할 수 있도록 API 및 애플리케이션 인그레스 로드 밸런서를 별도로 배포할 수 있습니다.

참고

HAProxy를 로드 밸런서로 사용하고 SELinux가 enforcing으로 설정된 경우 HAProxy 서비스가 setsebool -P haproxy_connect_any=1을 실행하여 구성된 TCP 포트에 바인딩할 수 있는지 확인해야 합니다.

예 1.3. API 및 애플리케이션 인그레스 로드 밸런서 구성 샘플

global
  log         127.0.0.1 local2
  pidfile     /var/run/haproxy.pid
  maxconn     4000
  daemon
defaults
  mode                    http
  log                     global
  option                  dontlognull
  option http-server-close
  option                  redispatch
  retries                 3
  timeout http-request    10s
  timeout queue           1m
  timeout connect         10s
  timeout client          1m
  timeout server          1m
  timeout http-keep-alive 10s
  timeout check           10s
  maxconn                 3000
listen api-server-6443 1
  bind *:6443
  mode tcp
  server master0 master0.ocp4.example.com:6443 check inter 1s
  server master1 master1.ocp4.example.com:6443 check inter 1s
  server master2 master2.ocp4.example.com:6443 check inter 1s
listen machine-config-server-22623 2
  bind *:22623
  mode tcp
  server master0 master0.ocp4.example.com:22623 check inter 1s
  server master1 master1.ocp4.example.com:22623 check inter 1s
  server master2 master2.ocp4.example.com:22623 check inter 1s
listen ingress-router-443 3
  bind *:443
  mode tcp
  balance source
  server worker0 worker0.ocp4.example.com:443 check inter 1s
  server worker1 worker1.ocp4.example.com:443 check inter 1s
listen ingress-router-80 4
  bind *:80
  mode tcp
  balance source
  server worker0 worker0.ocp4.example.com:80 check inter 1s
  server worker1 worker1.ocp4.example.com:80 check inter 1s
1
포트 6443은 Kubernetes API 트래픽을 처리하고 컨트롤 플레인 시스템을 가리킵니다.
2
포트 22623은 머신 구성 서버 트래픽을 처리하고 컨트롤 플레인 시스템을 가리킵니다.
3
포트 443은 HTTPS 트래픽을 처리하고 Ingress 컨트롤러 Pod를 실행하는 시스템을 가리킵니다. Ingress 컨트롤러 Pod는 기본적으로 컴퓨팅 머신에서 실행됩니다.
4
포트 80은 HTTP 트래픽을 처리하고 Ingress 컨트롤러 Pod를 실행하는 머신을 가리킵니다. Ingress 컨트롤러 Pod는 기본적으로 컴퓨팅 머신에서 실행됩니다.
참고

컴퓨팅 노드가 0인 3-노드 클러스터를 배포하는 경우 Ingress 컨트롤러 Pod는 컨트롤 플레인 노드에서 실행됩니다. 3-노드 클러스터 배포에서 HTTP 및 HTTPS 트래픽을 컨트롤 플레인 노드로 라우팅하도록 애플리케이션 인그레스 로드 밸런서를 구성해야 합니다.

작은 정보

HAProxy를 로드 밸런서로 사용하는 경우 HAProxy 노드에서 netstat -nltupe를 실행하여 haproxy 프로세스가 포트 6443, 22623, 44380에서 수신 대기 중인지 확인할 수 있습니다.

1.8. 예: Bonds 및 VLAN 인터페이스 노드 네트워크 구성

다음 agent-config.yaml 파일은 본딩 및 VLAN 인터페이스에 대한 매니페스트의 예입니다.

  apiVersion: v1alpha1
  kind: AgentConfig
  rendezvousIP: 10.10.10.14
  hosts:
    - hostname: master0
      role: master
      interfaces:
       - name: enp0s4
         macAddress: 00:21:50:90:c0:10
       - name: enp0s5
         macAddress: 00:21:50:90:c0:20
      networkConfig:
        interfaces:
          - name: bond0.300 1
            type: vlan 2
            state: up
            vlan:
              base-iface: bond0
              id: 300
            ipv4:
              enabled: true
              address:
                - ip: 10.10.10.14
                  prefix-length: 24
              dhcp: false
          - name: bond0 3
            type: bond 4
            state: up
            mac-address: 00:21:50:90:c0:10 5
            ipv4:
              enabled: false
            ipv6:
              enabled: false
            link-aggregation:
              mode: active-backup 6
              options:
                miimon: "150" 7
              port:
               - enp0s4
               - enp0s5
        dns-resolver: 8
          config:
            server:
              - 10.10.10.11
              - 10.10.10.12
        routes:
          config:
            - destination: 0.0.0.0/0
              next-hop-address: 10.10.10.10 9
              next-hop-interface: bond0.300 10
              table-id: 254
1 3
인터페이스 이름입니다.
2
인터페이스 유형입니다. 이 예제에서는 VLAN을 만듭니다.
4
인터페이스 유형입니다. 이 예제에서는 본딩을 생성합니다.
5
인터페이스의 mac 주소입니다.
6
mode 속성은 본딩 모드를 지정합니다.
7
MII 링크 모니터링 빈도를 밀리초 단위로 지정합니다. 이 예제에서는 150 밀리초마다 본딩 링크를 검사합니다.
8
선택 사항: DNS 서버의 검색 및 서버 설정을 지정합니다.
9
노드 트래픽의 다음 홉 주소입니다. 지정된 인터페이스에 설정된 IP 주소와 동일한 서브넷에 있어야 합니다.
10
노드 트래픽을 위한 다음 홉 인터페이스입니다.

1.9. 예: Bonds 및 SR-IOV 듀얼 NIC 노드 네트워크 구성

중요

SR-IOV 장치에 대한 NIC 파티셔닝 활성화와 관련된 Day 1 작업을 지원하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

다음 agent-config.yaml 파일은 본딩 및 SR-IOV 인터페이스가 있는 이중 포트 NIC의 매니페스트 예제입니다.

apiVersion: v1alpha1
kind: AgentConfig
rendezvousIP: 10.10.10.14
hosts:
  - hostname: worker-1
    interfaces:
      - name: eno1
        macAddress: 0c:42:a1:55:f3:06
      - name: eno2
        macAddress: 0c:42:a1:55:f3:07
    networkConfig: 1
      interfaces: 2
        - name: eno1 3
          type: ethernet 4
          state: up
          mac-address: 0c:42:a1:55:f3:06
          ipv4:
            enabled: true
            dhcp: false 5
          ethernet:
            sr-iov:
              total-vfs: 2 6
          ipv6:
            enabled: false
        - name: sriov:eno1:0
          type: ethernet
          state: up 7
          ipv4:
            enabled: false 8
          ipv6:
            enabled: false
            dhcp: false
        - name: sriov:eno1:1
          type: ethernet
          state: down
        - name: eno2
          type: ethernet
          state: up
          mac-address: 0c:42:a1:55:f3:07
          ipv4:
            enabled: true
          ethernet:
            sr-iov:
              total-vfs: 2
          ipv6:
            enabled: false
        - name: sriov:eno2:0
          type: ethernet
          state: up
          ipv4:
            enabled: false
          ipv6:
            enabled: false
        - name: sriov:eno2:1
          type: ethernet
          state: down
        - name: bond0
          type: bond
          state: up
          min-tx-rate: 100 9
          max-tx-rate: 200 10
          link-aggregation:
            mode: active-backup 11
            options:
              primary: sriov:eno1:0 12
            port:
              - sriov:eno1:0
              - sriov:eno2:0
          ipv4:
            address:
              - ip: 10.19.16.57 13
                prefix-length: 23
            dhcp: false
            enabled: true
          ipv6:
            enabled: false
          dns-resolver:
            config:
              server:
                - 10.11.5.160
                - 10.2.70.215
          routes:
            config:
              - destination: 0.0.0.0/0
                next-hop-address: 10.19.17.254
                next-hop-interface: bond0 14
                table-id: 254
1
networkConfig 필드에는 호스트의 네트워크 구성에 대한 정보가 포함되어 있으며, 인터페이스,dns-resolver, 경로를 포함한 하위 필드가 있습니다.
2
interfaces 필드는 호스트에 정의된 네트워크 인터페이스의 배열입니다.
3
인터페이스의 이름입니다.
4
인터페이스 유형입니다. 이 예제에서는 이더넷 인터페이스를 생성합니다.
5
필요하지 않은 경우 물리적 기능(PF)의 DHCP를 비활성화하려면 이를 false 로 설정합니다.
6
인스턴스화할 SR-IOV 가상 기능(VF) 수로 설정합니다.
7
이 값을 up 으로 설정합니다.
8
본딩에 연결된 VF의 IPv4 주소를 비활성화하려면 이를 false 로 설정합니다.
9
VF에 대해 최소 전송 속도(Mbps)를 설정합니다. 이 샘플 값은 100Mbps의 속도를 설정합니다.
  • 이 값은 최대 전송 속도보다 작거나 같아야 합니다.
  • Intel NIC는 min-tx-rate 매개변수를 지원하지 않습니다. 자세한 내용은 BZ#1772847 에서 참조하십시오.
10
VF에 대해 최대 전송 속도(Mbps)를 설정합니다. 이 샘플 값은 200Mbps의 속도를 설정합니다.
11
원하는 본딩 모드를 설정합니다.
12
본딩 인터페이스의 기본 포트를 설정합니다. 기본 장치는 본딩 인터페이스 중 가장 먼저 사용되는 인터페이스로, 장애가 발생하지 않는 한 폐기되지 않습니다. 이 설정은 특히 본딩 인터페이스의 특정 NIC가 더 빨라서 더 큰 부하를 처리할 수 있는 경우 유용합니다. 이 설정은 본딩 인터페이스가 active-backup 모드(mode 1) 및 balance-tlb (mode 5)인 경우에만 유효합니다.
13
본딩 인터페이스의 고정 IP 주소를 설정합니다. 노드 IP 주소입니다.
14
bond0 을 기본 경로의 게이트웨이로 설정합니다.

추가 리소스

1.10. 베어 메탈의 샘플 install-config.yaml 파일

install-config.yaml 파일을 사용자 지정하여 OpenShift Container Platform 클러스터 플랫폼에 대한 자세한 정보를 지정하거나 필수 매개변수 값을 수정할 수 있습니다.

apiVersion: v1
baseDomain: example.com 1
compute: 2
- name: worker
  replicas: 0 3
  architecture: amd64
controlPlane: 4
  name: master
  replicas: 1 5
  architecture: amd64
metadata:
  name: sno-cluster 6
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 7
    hostPrefix: 23 8
  networkType: OVNKubernetes 9
  serviceNetwork: 10
  - 172.30.0.0/16
platform:
  none: {} 11
fips: false 12
pullSecret: '{"auths": ...}' 13
sshKey: 'ssh-ed25519 AAAA...' 14
1
클러스터의 기본 도메인입니다. 모든 DNS 레코드는 이 기본 도메인의 하위 도메인이어야 하며 클러스터 이름을 포함해야 합니다.
2 4
controlPlane 섹션은 단일 매핑이지만 compute 섹션은 일련의 매핑입니다. 서로 다른 데이터 구조의 요구사항을 충족하도록 compute 섹션의 첫 번째 줄은 하이픈(-)으로 시작해야 하며 controlPlane 섹션의 첫 번째 줄은 하이픈으로 시작할 수 없습니다. 하나의 컨트롤 플레인 풀만 사용됩니다.
3
이 매개 변수는 설치 프로세스를 트리거하기 전에 에이전트 기반 설치가 검색 대기하는 컴퓨팅 시스템 수를 제어합니다. 생성된 ISO로 부팅해야 하는 컴퓨팅 머신 수입니다.
참고

3-노드 클러스터를 설치하는 경우 RHCOS(Red Hat Enterprise Linux CoreOS) 시스템을 설치할 때 컴퓨팅 머신을 배포하지 마십시오.

5
클러스터에 추가하는 컨트롤 플레인 시스템의 수입니다. 클러스터에서 이 값을 클러스터의 etcd 끝점 수로 사용하므로 이 값은 배포하는 컨트롤 플레인 시스템의 수와 일치해야 합니다.
6
DNS 레코드에 지정한 클러스터 이름입니다.
7
Pod IP 주소가 할당되는 IP 주소 블록입니다. 이 블록은 기존 물리적 네트워크와 중복되지 않아야합니다. 이러한 IP 주소는 Pod 네트워크에 사용됩니다. 외부 네트워크에서 Pod에 액세스해야 하는 경우, 트래픽을 관리하도록 로드 밸런서와 라우터를 설정해야 합니다.
참고

클래스 E CIDR 범위는 향후 사용을 위해 예약되어 있습니다. 클래스 E CIDR 범위를 사용하려면 네트워킹 환경에서 클래스 E CIDR 범위 내의 IP 주소를 수락해야 합니다.

8
개별 노드 각각에 할당할 서브넷 접두사 길이입니다. 예를 들어 hostPrefix23으로 설정하면 지정된 cidr 이외 /23 서브넷이 각 노드에 할당되어 510(2^(32 - 23) - 2) Pod IP 주소가 허용됩니다. 외부 네트워크에서 노드에 액세스해야 하는 경우 트래픽을 관리하도록 로드 밸런서와 라우터를 구성합니다.
9
설치할 클러스터 네트워크 플러그인입니다. 기본 값 OVNKubernetes 는 지원되는 유일한 값입니다.
10
서비스 IP 주소에 사용할 IP 주소 풀입니다. IP 주소 풀은 하나만 입력할 수 있습니다. 이 블록은 기존 물리적 네트워크와 중복되지 않아야합니다. 외부 네트워크에서 서비스에 액세스해야 하는 경우, 트래픽을 관리하도록 로드 밸런서와 라우터를 구성합니다.
11
단일 노드 클러스터에 대해 플랫폼을 none 으로 설정해야 합니다. 다중 노드 클러스터에 대해 플랫폼을 vsphere,baremetal 또는 none 으로 설정할 수 있습니다.
참고

플랫폼을 vsphere 또는 baremetal 로 설정하면 다음 세 가지 방법으로 클러스터 노드의 IP 주소 끝점을 구성할 수 있습니다.

  • IPv4
  • IPv6
  • IPv4 및 IPv6 병렬(dual-stack)

듀얼 스택 네트워킹의 예

networking:
  clusterNetwork:
    - cidr: 172.21.0.0/16
      hostPrefix: 23
    - cidr: fd02::/48
      hostPrefix: 64
  machineNetwork:
    - cidr: 192.168.11.0/16
    - cidr: 2001:DB8::/32
  serviceNetwork:
    - 172.22.0.0/16
    - fd03::/112
  networkType: OVNKubernetes
platform:
  baremetal:
    apiVIPs:
    - 192.168.11.3
    - 2001:DB8::4
    ingressVIPs:
    - 192.168.11.4
    - 2001:DB8::5

12
FIPS 모드 활성화 또는 비활성화 여부입니다. 기본적으로 FIPS 모드는 비활성화됩니다. FIPS 모드가 활성화되면 OpenShift Container Platform이 실행되는 RHCOS(Red Hat Enterprise Linux CoreOS) 시스템에서 기본 Kubernetes 암호화 제품군은 우회하고 RHCOS와 함께 제공되는 암호화 모듈을 대신 사용합니다.
중요

FIPS 모드에서 부팅된 RHEL(Red Hat Enterprise Linux CoreOS) 또는 RHCOS(Red Hat Enterprise Linux CoreOS)를 실행하는 경우 OpenShift Container Platform 코어 구성 요소는 x86_64, ppc64le 및 s390x 아키텍처에서만 FIPS 140-2/140-3 Validation에 대해 NIST에 제출된 RHEL 암호화 라이브러리를 사용합니다.

13
이 풀 시크릿을 사용하면 OpenShift Container Platform 구성 요소에 대한 컨테이너 이미지를 제공하는 Quay.io를 포함하여 인증 기관에서 제공하는 서비스로 인증할 수 있습니다.
14
RHCOS(Red Hat Enterprise Linux CoreOS)의 core 사용자에 대한 SSH 공용 키입니다.
참고

설치 디버깅 또는 재해 복구를 수행하려는 프로덕션 OpenShift Container Platform 클러스터의 경우 ssh-agent 프로세스가 사용하는 SSH 키를 지정합니다.

1.11. 에이전트 ISO 생성 전 검증

에이전트 기반 설치 관리자는 ISO를 생성하기 전에 사용자 정의 YAML 파일에서 유효성 검사를 수행합니다. 검증에 성공하면 에이전트 ISO가 생성됩니다.

install-config.yaml

  • baremetal,vspherenone 플랫폼은 지원되지 않습니다.
  • networkType 매개변수는 플랫폼이 없는 경우 OVNKubernetes 여야 합니다.
  • 베어 메탈 및 vSphere 플랫폼에 대해 apiVIPsingressVIPs 매개변수를 설정해야 합니다.
  • agent-config.yaml 파일에 해당하는 베어 메탈 플랫폼 구성의 일부 호스트별 필드는 무시됩니다. 이러한 필드가 설정된 경우 경고 메시지가 기록됩니다.

agent-config.yaml

  • 각 인터페이스에는 정의된 MAC 주소가 있어야 합니다. 또한 모든 인터페이스에 다른 MAC 주소가 있어야 합니다.
  • 각 호스트에 대해 하나 이상의 인터페이스를 정의해야 합니다.
  • WWN(World Wide Name) 벤더 확장은 루트 장치 팁에서 지원되지 않습니다.
  • host 오브젝트의 role 매개변수에는 master 또는 worker 값이 있어야 합니다.

1.11.1. ZTP 매니페스트

agent-cluster-install.yaml

  • IPv6의 경우 networkType 매개변수에 지원되는 유일한 값은 OVNKubernetes 입니다. OpenshiftSDN 값은 IPv4에만 사용할 수 있습니다.

cluster-image-set.yaml

  • ReleaseImage 매개변수는 설치 프로그램에 정의된 릴리스와 일치해야 합니다.

1.12. 다음 단계

2장. 연결 해제된 설치 미러링 이해

연결이 끊긴 설치에는 미러 레지스트리를 사용하고 클러스터가 외부 콘텐츠에 대한 조직의 제어를 충족하는 컨테이너 이미지만 사용하도록 할 수 있습니다. 연결이 끊긴 환경에서 프로비저닝하는 인프라에 클러스터를 설치하기 전에 필요한 컨테이너 이미지를 해당 환경에 미러링해야 합니다. 컨테이너 이미지를 미러링하려면 미러링을 위한 레지스트리가 있어야 합니다.

2.1. 에이전트 기반 설치 관리자를 통해 연결이 끊긴 설치의 이미지 미러링

다음 절차 중 하나를 사용하여 OpenShift Container Platform 이미지 저장소를 미러 레지스트리에 미러링할 수 있습니다.

2.2. 연결이 끊긴 레지스트리의 OpenShift Container Platform 이미지 저장소 미러링 정보

에이전트 기반 설치 관리자를 사용하여 연결이 끊긴 설치에 미러 이미지를 사용하려면 install-config.yaml 파일을 수정해야 합니다.

oc adm release mirror 또는 oc mirror 명령의 출력을 사용하여 릴리스 이미지를 미러링할 수 있습니다. 이는 미러 레지스트리를 설정하는 데 사용한 명령에 따라 달라집니다.

다음 예제에서는 oc adm release mirror 명령의 출력을 보여줍니다.

$ oc adm release mirror

출력 예

To use the new mirrored repository to install, add the following
section to the install-config.yaml:

imageContentSources:

mirrors:
virthost.ostest.test.metalkube.org:5000/localimages/local-release-image
source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
mirrors:
virthost.ostest.test.metalkube.org:5000/localimages/local-release-image
source: registry.ci.openshift.org/ocp/release

다음 예제는 oc-mirror 플러그인에서 생성한 imageContentSourcePolicy.yaml 파일의 일부를 보여줍니다. 파일은 결과 디렉터리(예: oc-mirror-workspace/results-1682697932/ )에서 찾을 수 있습니다.

Example imageContentSourcePolicy.yaml file

spec:
  repositoryDigestMirrors:
  - mirrors:
    - virthost.ostest.test.metalkube.org:5000/openshift/release
    source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
  - mirrors:
    - virthost.ostest.test.metalkube.org:5000/openshift/release-images
    source: quay.io/openshift-release-dev/ocp-release

2.2.1. 미러링된 이미지를 사용하도록 에이전트 기반 설치 프로그램 구성

미러링된 이미지를 사용하도록 에이전트 기반 설치 관리자를 구성하려면 oc adm release mirror 명령 또는 oc-mirror 플러그인의 출력을 사용해야 합니다.

프로세스

  1. oc-mirror 플러그인을 사용하여 릴리스 이미지를 미러링한 경우 다음을 수행합니다.

    1. 결과 디렉터리에 있는 imageContentSourcePolicy.yaml 을 엽니다(예: oc-mirror-workspace/results-1682697932/ ).
    2. yaml 파일의 repositoryDigestMirrors 섹션에 텍스트를 복사합니다.
  2. oc adm release mirror 명령을 사용하여 릴리스 이미지를 미러링한 경우 다음을 수행합니다.

    • 명령 출력의 imageContentSources 섹션에 텍스트를 복사합니다.
  3. 복사된 텍스트를 install-config.yaml 파일의 imageContentSources 필드에 붙여넣습니다.
  4. 미러 레지스트리에 사용된 인증서 파일을 yaml 파일의 additionalTrustBundle 필드에 추가합니다.

    중요

    값은 미러 레지스트리에 사용한 인증서 파일의 내용이어야 합니다. 인증서 파일은 신뢰할 수 있는 기존 인증 기관 또는 미러 레지스트리에 대해 생성한 자체 서명 인증서일 수 있습니다.

    install-config.yaml 파일 예

      additionalTrustBundle: |
        -----BEGIN CERTIFICATE-----
        ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
        -----END CERTIFICATE-----

  5. GitOps ZTP 매니페스트를 사용하는 경우: registries.confca-bundle.crt 파일을 미러 경로에 추가하여 에이전트 ISO 이미지에 미러 구성을 추가합니다.

    참고

    oc adm release mirror 명령 또는 oc mirror 플러그인의 출력에서 registries.conf 파일을 생성할 수 있습니다. /etc/containers/registries.conf 파일의 형식이 변경되었습니다. 현재 버전은 TOML 형식의 버전 2입니다.

    registries.conf 파일 예

    [[registry]]
    location = "registry.ci.openshift.org/ocp/release" mirror-by-digest-only = true
    
    [[registry.mirror]] location = "virthost.ostest.test.metalkube.org:5000/localimages/local-release-image"
    
    [[registry]]
    location = "quay.io/openshift-release-dev/ocp-v4.0-art-dev" mirror-by-digest-only = true
    
    [[registry.mirror]] location = "virthost.ostest.test.metalkube.org:5000/localimages/local-release-image"

3장. 클러스터 설치

에이전트 기반 설치 관리자를 사용하여 기본 OpenShift Container Platform 클러스터를 설치할 수 있습니다.

에이전트 기반 설치 관리자를 사용하는 동안 수행할 수 있는 선택적 사용자 정의가 포함된 절차는 사용자 지정으로 클러스터 설치를 참조하십시오.

3.1. 사전 요구 사항

3.2. 에이전트 기반 설치 관리자를 사용하여 OpenShift Container Platform 설치

다음 절차에서는 연결이 끊긴 환경에 단일 노드 OpenShift Container Platform을 배포합니다. 이러한 절차를 기반으로 사용하고 요구 사항에 따라 수정할 수 있습니다.

3.2.1. 에이전트 기반 설치 프로그램 다운로드

다음 절차를 사용하여 에이전트 기반 설치 프로그램 및 설치에 필요한 CLI를 다운로드합니다.

참고

현재 에이전트 기반 설치 관리자 다운로드는 IBM Z® (s390x) 아키텍처에서 지원되지 않습니다. 권장되는 방법은 PXE 자산을 생성하는 것입니다.

프로세스

  1. 로그인 인증 정보를 사용하여 OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. Datacenter 로 이동합니다.
  3. 로컬 에서 에이전트 기반 설치 관리자 실행을 클릭합니다.
  4. OpenShift 설치 프로그램명령줄 인터페이스 의 운영 체제 및 아키텍처를 선택합니다.
  5. 설치 프로그램 다운로드를 클릭하여 설치 프로그램을 다운로드하고 추출합니다.
  6. 풀 시크릿 다운로드를 클릭하거나 풀 시크릿 복사를 클릭하여 풀 시크릿을 다운로드하거나 복사합니다.
  7. 명령행 툴 다운로드를 클릭하고 openshift-install 바이너리를 PATH 에 있는 디렉터리에 배치합니다.

3.2.2. 구성 입력 생성

에이전트 이미지를 생성하기 위해 설치 프로그램에서 사용하는 구성 파일을 생성해야 합니다.

프로세스

  1. openshift-install 바이너리를 PATH에 있는 디렉터리에 배치합니다.
  2. 다음 명령을 실행하여 설치 구성을 저장할 디렉터리를 생성합니다.

    $ mkdir ~/<directory_name>
  3. 다음 명령을 실행하여 install-config.yaml 파일을 생성합니다.

    $ cat << EOF > ./my-cluster/install-config.yaml
    apiVersion: v1
    baseDomain: test.example.com
    compute:
    - architecture: amd64 1
      hyperthreading: Enabled
      name: worker
      replicas: 0
    controlPlane:
      architecture: amd64
      hyperthreading: Enabled
      name: master
      replicas: 1
    metadata:
      name: sno-cluster 2
    networking:
      clusterNetwork:
      - cidr: fd01::/48
        hostPrefix: 64
      machineNetwork:
      - cidr: fd2e:6f44:5dd8:c956::/120
      networkType: OVNKubernetes 3
      serviceNetwork:
      - fd02::/112
    platform: 4
      none: {}
    pullSecret: '<pull_secret>' 5
    sshKey: '<ssh_pub_key>' 6
    additionalTrustBundle: | 7
      -----BEGIN CERTIFICATE-----
      ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
      -----END CERTIFICATE-----
    imageContentSources: 8
    - mirrors:
      - <local_registry>/<local_repository_name>/release
      source: quay.io/openshift-release-dev/ocp-release
    - mirrors:
      - <local_registry>/<local_repository_name>/release
      source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
    EOF
    1
    시스템 아키텍처를 지정합니다. 유효한 값은 amd64,arm64,ppc64le, s390x 입니다.

    다중 페이로드와 함께 릴리스 이미지를 사용하는 경우 arm64,amd64,s390xppc64le 과 같은 다양한 아키텍처에 클러스터를 설치할 수 있습니다. 그러지 않으면 openshift-install version 명령의 출력에 표시된 릴리스 아키텍처에 만 클러스터를 설치할 수 있습니다. 자세한 내용은 " 에이전트 기반 설치 관리자 클러스터 설치를 위해 지원되는 아키텍처 확인"을 참조하십시오.

    2
    필수 항목입니다. 클러스터 이름을 지정합니다.
    3
    설치할 클러스터 네트워크 플러그인입니다. 기본 값 OVNKubernetes 는 지원되는 유일한 값입니다.
    4
    플랫폼을 지정합니다.
    참고

    베어 메탈 플랫폼의 경우 agent-config.yaml 파일에서 만든 구성으로 재정의하지 않는 한 install-config.yaml 파일의 platform 섹션에서 만든 호스트 설정이 기본적으로 사용됩니다.

    5
    풀 시크릿을 지정합니다.
    6
    SSH 공개 키를 지정합니다.
    7
    미러 레지스트리에 사용한 인증서 파일의 내용을 제공하십시오. 인증서 파일은 신뢰할 수 있는 기존 인증 기관 또는 미러 레지스트리에 대해 생성한 자체 서명 인증서일 수 있습니다. 연결이 끊긴 미러 레지스트리를 사용하는 경우 이 매개변수를 지정해야 합니다.
    8
    리포지토리를 미러링하는 데 사용한 명령의 출력에 따라 imageContentSources 섹션을 제공합니다. 연결이 끊긴 미러 레지스트리를 사용하는 경우 이 매개변수를 지정해야 합니다.
    중요
    • oc adm release mirror 명령을 사용하는 경우 imageContentSources 섹션의 출력을 사용합니다.
    • oc mirror 명령을 사용하는 경우 명령을 실행한 결과 ImageContentSourcePolicy 파일의 repositoryDigestMirrors 섹션을 사용합니다.
    • ImageContentSourcePolicy 리소스는 더 이상 사용되지 않습니다.
  4. 다음 명령을 실행하여 agent-config.yaml 파일을 생성합니다.

    $ cat > agent-config.yaml << EOF
    apiVersion: v1beta1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: fd2e:6f44:5dd8:c956::50 1
    EOF
    1
    이 IP 주소는 부트스트랩 프로세스를 수행하고 assisted-service 구성 요소를 실행하는 노드를 결정하는 데 사용됩니다. networkConfig 매개변수에 하나 이상의 호스트 IP 주소를 지정하지 않는 경우 rendezvous IP 주소를 제공해야 합니다. 이 주소를 제공하지 않으면 제공된 호스트 networkConfig 매개변수에서 하나의 IP 주소가 선택됩니다.

3.2.3. 에이전트 이미지 생성 및 부팅

시스템에서 에이전트 이미지를 부팅하려면 다음 절차를 사용하십시오.

프로세스

  1. 다음 명령을 실행하여 에이전트 이미지를 생성합니다.

    $ openshift-install --dir <install_directory> agent create image
    참고

    RHCOS(Red Hat Enterprise Linux CoreOS)는 기본 디스크에서 다중 경로를 지원하므로 하드웨어 장애에 대한 탄력성이 강화된 호스트 가용성을 높일 수 있습니다. 기본 /etc/multipath.conf 구성이 있는 에이전트 ISO 이미지에서 멀티패스는 기본적으로 활성화됩니다.

  2. 베어 메탈 시스템에서 agent.x86_64.iso 또는 agent.aarch64.iso 이미지를 부팅합니다.

3.2.4. 현재 설치 호스트에서 릴리스 이미지를 가져올 수 있는지 확인

에이전트 이미지 및 네트워크 서비스를 호스트에서 부팅한 후 에이전트 콘솔 애플리케이션에서 가져오기 검사를 수행하여 현재 호스트에서 릴리스 이미지를 검색할 수 있는지 확인합니다.

기본 풀 검사에서 통과하면 애플리케이션을 종료하여 설치를 계속할 수 있습니다. 가져오기 검사에 실패하면 TUI의 추가 검사 섹션에 표시된 대로 애플리케이션에서 추가 검사를 수행하여 문제를 해결합니다. 기본 가져오기 검사가 성공하면 추가 검사에 대한 실패가 반드시 중요한 것은 아닙니다.

설치에 실패할 수 있는 호스트 네트워크 구성 문제가 있는 경우 콘솔 애플리케이션을 사용하여 네트워크 구성을 조정할 수 있습니다.

중요

에이전트 콘솔 애플리케이션이 호스트 네트워크 구성 문제를 감지하면 사용자가 콘솔 애플리케이션을 수동으로 중지하고 진행하려는 의도에 신호를 보낼 때까지 설치 워크플로가 중지됩니다.

프로세스

  1. 에이전트 콘솔 애플리케이션이 레지스트리에서 구성된 릴리스 이미지를 가져올 수 있는지 여부를 확인할 때까지 기다립니다.
  2. 에이전트 콘솔 애플리케이션에서 설치 프로그램 연결 확인이 전달되었다고 표시되면 프롬프트가 설치를 계속할 때까지 기다립니다.

    참고

    연결 검사에서 통과한 경우에도 네트워크 구성 설정을 보거나 변경하도록 선택할 수 있습니다.

    그러나 시간 초과를 두는 대신 에이전트 콘솔 애플리케이션과 상호 작용하도록 선택하는 경우 TUI를 수동으로 종료하여 설치를 진행해야 합니다.

  3. 에이전트 콘솔 애플리케이션 검사에 실패한 경우 릴리스 이미지 URL 가져오기 확인 옆에 빨간색 아이콘으로 표시되는 다음 단계를 사용하여 호스트의 네트워크 설정을 재구성합니다.

    1. TUI의 Check Errors 섹션을 읽으십시오. 이 섹션에는 실패한 검사와 관련된 오류 메시지가 표시됩니다.

      검사 오류를 표시하는 에이전트 콘솔 애플리케이션의 홈 화면
    2. Configure network 를 선택하여 NetworkManager TUI를 시작합니다.
    3. 연결 편집을 선택하고 재구성할 연결을 선택합니다.
    4. 구성을 편집하고 OK 를 선택하여 변경 사항을 저장합니다.
    5. Back 을 선택하여 NetworkManager TUI의 기본 화면으로 돌아갑니다.
    6. 연결 활성화를 선택합니다.
    7. 재구성된 네트워크를 선택하여 비활성화합니다.
    8. 재구성된 네트워크를 다시 선택하여 다시 활성화합니다.
    9. Back 을 선택한 다음 Quit 를 선택하여 에이전트 콘솔 애플리케이션으로 돌아갑니다.
    10. 새 네트워크 구성을 사용하여 연속 네트워크 검사를 다시 시작할 때까지 5초 이상 기다립니다.
    11. 릴리스 이미지 URL 가져오기 검사가 성공하고 URL 옆에 녹색 아이콘이 표시되면 Quit 를 선택하여 에이전트 콘솔 애플리케이션을 종료하고 설치를 계속합니다.

3.2.5. 설치 진행 상황 추적 및 확인

다음 절차에 따라 설치 진행 상황을 추적하고 성공적으로 설치되었는지 확인합니다.

사전 요구 사항

  • Kubernetes API 서버에 대한 DNS 레코드를 구성했습니다.

프로세스

  1. 선택 사항: 부트스트랩 호스트(신규 호스트)가 재부팅되는 시기를 확인하려면 다음 명령을 실행합니다.

    $ ./openshift-install --dir <install_directory> agent wait-for bootstrap-complete \1
        --log-level=info 2
    1
    & lt;install_directory > 의 경우 에이전트 ISO가 생성된 디렉터리의 경로를 지정합니다.
    2
    다른 설치 세부 사항을 보려면 info 대신 warn, debug 또는 error를 지정합니다.

    출력 예

    ...................................................................
    ...................................................................
    INFO Bootstrap configMap status is complete
    INFO cluster bootstrap is complete

    이 명령은 Kubernetes API 서버가 컨트롤 플레인 시스템에서 부트스트랩되었다는 신호를 보낼 때 성공합니다.

  2. 진행 상황을 추적하고 성공적으로 설치를 확인하려면 다음 명령을 실행합니다.

    $ openshift-install --dir <install_directory> agent wait-for install-complete 1
    1
    & lt;install_directory > 디렉터리에 대해 에이전트 ISO가 생성된 디렉터리의 경로를 지정합니다.

    출력 예

    ...................................................................
    ...................................................................
    INFO Cluster is installed
    INFO Install complete!
    INFO To access the cluster as the system:admin user when using 'oc', run
    INFO     export KUBECONFIG=/home/core/installer/auth/kubeconfig
    INFO Access the OpenShift web-console here: https://console-openshift-console.apps.sno-cluster.test.example.com

3.3. 에이전트 기반 설치 실패에서 로그 데이터 수집

다음 절차에 따라 지원 케이스를 제공하기 위해 실패한 에이전트 기반 설치에 대한 로그 데이터를 수집합니다.

사전 요구 사항

  • Kubernetes API 서버에 대한 DNS 레코드를 구성했습니다.

프로세스

  1. 다음 명령을 실행하고 출력을 수집합니다.

    $ ./openshift-install --dir <installation_directory> agent wait-for bootstrap-complete --log-level=debug

    오류 메시지의 예

    ...
    ERROR Bootstrap failed to complete: : bootstrap process timed out: context deadline exceeded

  2. 이전 명령의 출력에 실패가 표시되거나 부트스트랩이 진행되지 않은 경우 다음 명령을 실행하여ndezvous 호스트에 연결하고 출력을 수집합니다.

    $ ssh core@<node-ip> agent-gather -O >agent-gather.tar.xz
    참고

    Red Hat 지원은 rendezvous 호스트에서 수집된 데이터를 사용하여 대부분의 문제를 진단할 수 있지만 일부 호스트가 등록할 수 없는 경우 모든 호스트에서 이 데이터를 수집하는 것이 유용할 수 있습니다.

  3. 부트스트랩이 완료되고 클러스터 노드가 재부팅되면 다음 명령을 실행하고 출력을 수집합니다.

    $ ./openshift-install --dir <install_directory> agent wait-for install-complete --log-level=debug
  4. 이전 명령의 출력에 오류가 표시되면 다음 단계를 수행합니다.

    1. 다음 명령을 실행하여 kubeconfig 파일을 환경으로 내보냅니다.

      $ export KUBECONFIG=<install_directory>/auth/kubeconfig
    2. 다음 명령을 실행하여 디버깅에 대한 정보를 수집합니다.

      $ oc adm must-gather
    3. 다음 명령을 실행하여 작업 디렉터리에 생성된 must-gather 디렉터리에서 압축 파일을 만듭니다.

      $ tar cvaf must-gather.tar.gz <must_gather_directory>
  5. /auth 하위 디렉토리를 제외하고 배포 중에 사용되는 설치 디렉터리를 Red Hat 고객 포털 의 지원 케이스에 연결합니다.
  6. 이 절차에서 수집된 다른 모든 데이터를 지원 케이스에 첨부합니다.

4장. 사용자 지정으로 클러스터 설치

다음 절차에 따라 에이전트 기반 설치 관리자를 사용하여 사용자 지정으로 OpenShift Container Platform 클러스터를 설치합니다.

4.1. 사전 요구 사항

4.2. 에이전트 기반 설치 관리자를 사용하여 OpenShift Container Platform 설치

다음 절차에서는 연결이 끊긴 환경에 단일 노드 OpenShift Container Platform을 배포합니다. 이러한 절차를 기반으로 사용하고 요구 사항에 따라 수정할 수 있습니다.

4.2.1. 에이전트 기반 설치 프로그램 다운로드

다음 절차를 사용하여 에이전트 기반 설치 프로그램 및 설치에 필요한 CLI를 다운로드합니다.

참고

현재 에이전트 기반 설치 관리자 다운로드는 IBM Z® (s390x) 아키텍처에서 지원되지 않습니다. 권장되는 방법은 PXE 자산을 생성하는 것입니다.

프로세스

  1. 로그인 인증 정보를 사용하여 OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. Datacenter 로 이동합니다.
  3. 로컬 에서 에이전트 기반 설치 관리자 실행을 클릭합니다.
  4. OpenShift 설치 프로그램명령줄 인터페이스 의 운영 체제 및 아키텍처를 선택합니다.
  5. 설치 프로그램 다운로드를 클릭하여 설치 프로그램을 다운로드하고 추출합니다.
  6. 풀 시크릿 다운로드를 클릭하거나 풀 시크릿 복사를 클릭하여 풀 시크릿을 다운로드하거나 복사합니다.
  7. 명령행 툴 다운로드를 클릭하고 openshift-install 바이너리를 PATH 에 있는 디렉터리에 배치합니다.

4.2.2. 기본 구성 입력 생성

이 절차를 사용하여 에이전트 이미지를 생성하는 데 사용되는 기본 구성 입력을 생성합니다.

프로세스

  1. 다음 명령을 실행하여 nmstate 종속성을 설치합니다.

    $ sudo dnf install /usr/bin/nmstatectl -y
  2. openshift-install 바이너리를 PATH에 있는 디렉터리에 배치합니다.
  3. 다음 명령을 실행하여 설치 구성을 저장할 디렉터리를 생성합니다.

    $ mkdir ~/<directory_name>
    참고

    에이전트 기반 설치에 권장되는 방법입니다. GitOps ZTP 매니페스트 사용은 선택 사항입니다.

  4. 다음 명령을 실행하여 install-config.yaml 파일을 생성합니다.

    $ cat << EOF > ./<directory_name>/install-config.yaml
    apiVersion: v1
    baseDomain: test.example.com
    compute:
    - architecture: amd64 1
      hyperthreading: Enabled
      name: worker
      replicas: 0
    controlPlane:
      architecture: amd64
      hyperthreading: Enabled
      name: master
      replicas: 1
    metadata:
      name: sno-cluster 2
    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      machineNetwork:
      - cidr: 192.168.0.0/16
      networkType: OVNKubernetes 3
      serviceNetwork:
      - 172.30.0.0/16
    platform: 4
      none: {}
    pullSecret: '<pull_secret>' 5
    sshKey: '<ssh_pub_key>' 6
    EOF
    1
    시스템 아키텍처를 지정하고 유효한 값은 amd64,arm64,ppc64le, s390x 입니다.
    2
    필수 항목입니다. 클러스터 이름을 지정합니다.
    3
    설치할 클러스터 네트워크 플러그인입니다. 기본 값 OVNKubernetes 는 지원되는 유일한 값입니다.
    4
    플랫폼을 지정합니다.
    참고

    베어 메탈 플랫폼의 경우 agent-config.yaml 파일에서 만든 구성으로 재정의하지 않는 한 install-config.yaml 파일의 platform 섹션에서 만든 호스트 설정이 기본적으로 사용됩니다.

    5
    풀 시크릿을 지정합니다.
    6
    SSH 공개 키를 지정합니다.
    참고

    플랫폼을 vSphere 또는 baremetal 로 설정하면 다음 세 가지 방법으로 클러스터 노드의 IP 주소 끝점을 구성할 수 있습니다.

    • IPv4
    • IPv6
    • IPv4 및 IPv6 병렬(dual-stack)

    IPv6는 베어 메탈 플랫폼에서만 지원됩니다.

    듀얼 스택 네트워킹의 예

    networking:
      clusterNetwork:
        - cidr: 172.21.0.0/16
          hostPrefix: 23
        - cidr: fd02::/48
          hostPrefix: 64
      machineNetwork:
        - cidr: 192.168.11.0/16
        - cidr: 2001:DB8::/32
      serviceNetwork:
        - 172.22.0.0/16
        - fd03::/112
      networkType: OVNKubernetes
    platform:
      baremetal:
        apiVIPs:
        - 192.168.11.3
        - 2001:DB8::4
        ingressVIPs:
        - 192.168.11.4
        - 2001:DB8::5

    참고

    연결이 끊긴 미러 레지스트리를 사용하는 경우 미러 레지스트리에 대해 이전에 생성한 인증서 파일을 install-config.yaml 파일의 additionalTrustBundle 필드에 추가해야 합니다.

  5. 다음 명령을 실행하여 agent-config.yaml 파일을 생성합니다.

    $ cat > agent-config.yaml << EOF
    apiVersion: v1beta1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80 1
    hosts: 2
      - hostname: master-0 3
        interfaces:
          - name: eno1
            macAddress: 00:ef:44:21:e6:a5
        rootDeviceHints: 4
          deviceName: /dev/sdb
        networkConfig: 5
          interfaces:
            - name: eno1
              type: ethernet
              state: up
              mac-address: 00:ef:44:21:e6:a5
              ipv4:
                enabled: true
                address:
                  - ip: 192.168.111.80
                    prefix-length: 23
                dhcp: false
          dns-resolver:
            config:
              server:
                - 192.168.111.1
          routes:
            config:
              - destination: 0.0.0.0/0
                next-hop-address: 192.168.111.2
                next-hop-interface: eno1
                table-id: 254
    EOF
    1
    이 IP 주소는 부트스트랩 프로세스를 수행하고 assisted-service 구성 요소를 실행하는 노드를 결정하는 데 사용됩니다. networkConfig 매개변수에 하나 이상의 호스트의 IP 주소를 지정하지 않는 경우 rendezvous IP 주소를 제공해야 합니다. 이 주소를 제공하지 않으면 제공된 호스트의 networkConfig 에서 하나의 IP 주소가 선택됩니다.
    2
    선택 사항: 호스트 구성. 정의된 호스트 수는 compute.replicascontrolPlane.replicas 매개변수 값의 합계인 install-config.yaml 파일에 정의된 총 호스트 수를 초과해서는 안 됩니다.
    3
    선택 사항: DHCP(Dynamic Host Configuration Protocol) 또는 역방향 DNS 조회에서 얻은 호스트 이름을 재정의합니다. 각 호스트에는 이러한 방법 중 하나에서 제공하는 고유한 호스트 이름이 있어야 합니다.
    4
    특정 장치에 대한 RHCOS(Red Hat Enterprise Linux CoreOS) 이미지의 프로비저닝을 활성화합니다. 설치 프로그램은 장치를 검색한 순서대로 검사하고 검색된 값을 팁과 비교합니다. 힌트 값과 일치하는 첫 번째 검색된 장치를 사용합니다.
    5
    선택 사항: NMState 형식으로 호스트의 네트워크 인터페이스를 구성합니다.

4.2.3. 추가 매니페스트 파일 생성

선택적 작업에서는 install-config.yamlagent-config.yaml 파일에서 사용 가능한 구성 이상으로 클러스터를 추가로 구성하기 위해 추가 매니페스트를 생성할 수 있습니다.

중요

추가 매니페스트에 의해 생성된 클러스터에 대한 사용자 지정은 검증되지 않으며 작동이 보장되지 않으며 작동하지 않는 클러스터가 발생할 수 있습니다.

4.2.3.1. 추가 매니페스트를 포함할 디렉터리 생성

install-config.yamlagent-config.yaml 파일을 초과하는 에이전트 기반 설치를 구성하기 위해 추가 매니페스트를 생성하는 경우 설치 디렉터리 내에 openshift 하위 디렉터리를 생성해야 합니다. 모든 추가 머신 구성은 이 하위 디렉터리 내에 있어야 합니다.

참고

추가할 수 있는 가장 일반적인 추가 매니페스트 유형은 MachineConfig 오브젝트입니다. 에이전트 기반 설치 중에 추가할 수 있는 MachineConfig 오브젝트의 예는 "추가 리소스" 섹션의 " MachineConfig 개체를 사용하여 노드 구성"을 참조하십시오.

프로세스

  • 설치 호스트에서 다음 명령을 실행하여 설치 디렉터리 내에 openshift 하위 디렉터리를 생성합니다.

    $ mkdir <installation_directory>/openshift
4.2.3.2. 디스크 파티션 설정

일반적으로 RHCOS 설치 중에 생성된 기본 디스크 파티션을 사용해야 합니다. 그러나 확장하려는 디렉토리에 별도의 파티션을 생성해야 하는 경우가 있습니다.

OpenShift 컨테이너 플랫폼은 /var 디렉토리 또는 /var의 하위 디렉터리 중 하나에 스토리지를 연결하는 단일 파티션의 추가를 지원합니다. 예를 들면 다음과 같습니다.

  • /var/lib/containers: 시스템에 더 많은 이미지와 컨테이너가 추가됨에 따라 확장될 수 있는 컨테이너 관련 콘텐츠를 보관합니다.
  • /var/lib/etcd: etcd 스토리지의 성능 최적화와 같은 목적으로 별도로 보관할 데이터를 보관합니다.
  • /var: 감사 등의 목적에 맞게 별도로 분리하여 보관해야 하는 데이터를 보관합니다.

    중요

    100GB보다 큰 디스크 크기, 특히 1TB보다 큰 디스크의 경우 별도의 /var 파티션을 만듭니다.

/var 디렉터리의 콘텐츠를 별도로 저장하면 필요에 따라 해당 영역에 대한 스토리지 확장을 보다 용이하게 하고 나중에 OpenShift Container Platform을 다시 설치하여 해당 데이터를 그대로 보존할 수 있습니다. 이 방법을 사용하면 모든 컨테이너를 다시 가져올 필요가 없으며 시스템을 업데이트할 때 대용량 로그 파일을 복사할 필요도 없습니다.

/var 디렉토리 또는 /var의 하위 디렉토리에 대해 별도의 파티션을 사용하면 분할된 디렉토리의 데이터 증가로 루트 파일 시스템이 채워지는 것을 방지할 수 있습니다.

다음 절차에서는 설치 준비 단계에서 노드 유형의 Ignition 구성 파일에 래핑되는 머신 구성 매니페스트를 추가하여 별도의 /var 파티션을 설정합니다.

사전 요구 사항

  • 설치 디렉터리 내에 openshift 하위 디렉터리가 생성되어 있습니다.

프로세스

  1. 추가 파티션을 구성하는 Butane 구성을 생성합니다. 예를 들어 $HOME/clusterconfig/98-var-partition.bu 파일의 이름을 지정하고, 디스크 장치 이름을 worker 시스템의 스토리지 장치 이름으로 변경하고 스토리지 크기를 적절하게 설정합니다. 이 예에서는 /var 디렉터리를 별도의 파티션에 배치합니다.

    variant: openshift
    version: 4.15.0
    metadata:
      labels:
        machineconfiguration.openshift.io/role: worker
      name: 98-var-partition
    storage:
      disks:
      - device: /dev/disk/by-id/<device_name> 1
        partitions:
        - label: var
          start_mib: <partition_start_offset> 2
          size_mib: <partition_size> 3
          number: 5
      filesystems:
        - device: /dev/disk/by-partlabel/var
          path: /var
          format: xfs
          mount_options: [defaults, prjquota] 4
          with_mount_unit: true
    1
    파티션을 설정해야하는 디스크 저장 장치 이름입니다.
    2
    데이터 파티션을 부트 디스크에 추가할 때 최소 오프셋 값 25000 메비 바이트가 권장됩니다. 루트 파일 시스템은 지정된 오프셋까지 사용 가능한 모든 공간을 채우기 위해 자동으로 크기가 조정됩니다. 오프셋 값이 지정되지 않거나 지정된 값이 권장 최소값보다 작으면 생성되는 루트 파일 시스템의 크기가 너무 작아지고 RHCOS를 나중에 다시 설치할 때 데이터 파티션의 첫 번째 부분을 덮어 쓸 수 있습니다.
    3
    데이터 파티션의 크기(MB)입니다.
    4
    컨테이너 스토리지에 사용되는 파일 시스템에 대해 prjquota 마운트 옵션을 활성화해야 합니다.
    참고

    별도의 /var 파티션을 만들 때 다른 인스턴스 유형에 동일한 장치 이름이 없는 경우 컴퓨팅 노드에 다른 인스턴스 유형을 사용할 수 없습니다.

  2. Butane 구성에서 매니페스트를 생성하여 clusterconfig/openshift 디렉터리에 저장합니다. 예를 들어 다음 명령을 실행합니다.

    $ butane $HOME/clusterconfig/98-var-partition.bu -o $HOME/clusterconfig/openshift/98-var-partition.yaml

4.2.4. ZTP 매니페스트 사용

선택적 작업에서는 GitOps ZTP(ZTP) 매니페스트를 사용하여 install-config.yamlagent-config.yaml 파일을 통해 사용 가능한 옵션 이상으로 설치를 구성할 수 있습니다.

참고

GitOps ZTP 매니페스트는 install-config.yamlagent-config.yaml 파일을 미리 구성하지 않고 또는 사용하여 생성할 수 있습니다. install-config.yamlagent-config.yaml 파일을 구성하도록 선택하면 구성이 생성될 때 ZTP 클러스터 매니페스트로 가져옵니다.

사전 요구 사항

  • openshift-install 바이너리를 PATH 에 있는 디렉터리에 배치했습니다.
  • 선택 사항: install-config.yamlagent-config.yaml 파일을 생성하고 구성했습니다.

프로세스

  1. 다음 명령을 실행하여 ZTP 클러스터 매니페스트를 생성합니다.

    $ openshift-install agent create cluster-manifests --dir <installation_directory>
    중요

    install-config.yamlagent-config.yaml 파일을 생성한 경우 해당 파일이 삭제되고 이 명령을 통해 생성된 클러스터 매니페스트로 교체됩니다.

    openshift-install agent create cluster-manifests 명령을 실행할 때 install-config.yamlagent-config.yaml 파일에 대한 구성은 ZTP 클러스터 매니페스트로 가져옵니다.

  2. 다음 명령을 실행하여 cluster-manifests 디렉터리로 이동합니다.

    $ cd <installation_directory>/cluster-manifests
  3. cluster-manifests 디렉터리에서 매니페스트 파일을 구성합니다. 샘플 파일의 경우 "Sample GitOps ZTP 사용자 정의 리소스" 섹션을 참조하십시오.
  4. 연결이 끊긴 클러스터: ZTP 매니페스트를 생성하기 전에 install-config.yaml 파일에 미러 구성을 정의하지 않은 경우 다음 단계를 수행합니다.

    1. 다음 명령을 실행하여 미러 디렉터리로 이동합니다.

      $ cd ../mirror
    2. 미러 디렉터리에 매니페스트 파일을 구성합니다.

추가 리소스

4.2.5. 디스크 암호화

선택적 작업에서는 에이전트 기반 설치 프로그램을 사용하여 OpenShift Container Platform을 설치하는 동안 이 절차를 사용하여 디스크 또는 파티션을 암호화할 수 있습니다.

사전 요구 사항

  • ZTP 매니페스트를 사용하지 않는 한 install-config.yamlagent-config.yaml 파일을 생성하고 구성했습니다.
  • openshift-install 바이너리를 PATH 에 있는 디렉터리에 배치했습니다.

프로세스

  1. 다음 명령을 실행하여 ZTP 클러스터 매니페스트를 생성합니다.

    $ openshift-install agent create cluster-manifests --dir <installation_directory>
    중요

    install-config.yamlagent-config.yaml 파일을 생성한 경우 해당 파일이 삭제되고 이 명령을 통해 생성된 클러스터 매니페스트로 교체됩니다.

    openshift-install agent create cluster-manifests 명령을 실행할 때 install-config.yamlagent-config.yaml 파일에 대한 구성은 ZTP 클러스터 매니페스트로 가져옵니다.

    참고

    이미 ZTP 매니페스트를 생성한 경우 이 단계를 건너뜁니다.

  2. 다음 명령을 실행하여 cluster-manifests 디렉터리로 이동합니다.

    $ cd <installation_directory>/cluster-manifests
  3. agent-cluster-install.yaml 파일에 다음 섹션을 추가합니다.

    diskEncryption:
        enableOn: all 1
        mode: tang 2
        tangServers: "server1": "http://tang-server-1.example.com:7500" 3
    1
    디스크 암호화를 활성화할 노드를 지정합니다. 유효한 값은 none,all,master, worker 입니다.
    2
    사용할 디스크 암호화 모드를 지정합니다. 유효한 값은 tpmv2tang 입니다.
    3
    선택 사항: Tang을 사용하는 경우 Tang 서버를 지정합니다.

추가 리소스

4.2.6. 에이전트 이미지 생성 및 부팅

시스템에서 에이전트 이미지를 부팅하려면 다음 절차를 사용하십시오.

프로세스

  1. 다음 명령을 실행하여 에이전트 이미지를 생성합니다.

    $ openshift-install --dir <install_directory> agent create image
    참고

    RHCOS(Red Hat Enterprise Linux CoreOS)는 기본 디스크에서 다중 경로를 지원하므로 하드웨어 장애에 대한 탄력성이 강화된 호스트 가용성을 높일 수 있습니다. 기본 /etc/multipath.conf 구성이 있는 에이전트 ISO 이미지에서 멀티패스는 기본적으로 활성화됩니다.

  2. 베어 메탈 시스템에서 agent.x86_64.iso 또는 agent.aarch64.iso 이미지를 부팅합니다.

4.2.7. 현재 설치 호스트에서 릴리스 이미지를 가져올 수 있는지 확인

에이전트 이미지 및 네트워크 서비스를 호스트에서 부팅한 후 에이전트 콘솔 애플리케이션에서 가져오기 검사를 수행하여 현재 호스트에서 릴리스 이미지를 검색할 수 있는지 확인합니다.

기본 풀 검사에서 통과하면 애플리케이션을 종료하여 설치를 계속할 수 있습니다. 가져오기 검사에 실패하면 TUI의 추가 검사 섹션에 표시된 대로 애플리케이션에서 추가 검사를 수행하여 문제를 해결합니다. 기본 가져오기 검사가 성공하면 추가 검사에 대한 실패가 반드시 중요한 것은 아닙니다.

설치에 실패할 수 있는 호스트 네트워크 구성 문제가 있는 경우 콘솔 애플리케이션을 사용하여 네트워크 구성을 조정할 수 있습니다.

중요

에이전트 콘솔 애플리케이션이 호스트 네트워크 구성 문제를 감지하면 사용자가 콘솔 애플리케이션을 수동으로 중지하고 진행하려는 의도에 신호를 보낼 때까지 설치 워크플로가 중지됩니다.

프로세스

  1. 에이전트 콘솔 애플리케이션이 레지스트리에서 구성된 릴리스 이미지를 가져올 수 있는지 여부를 확인할 때까지 기다립니다.
  2. 에이전트 콘솔 애플리케이션에서 설치 프로그램 연결 확인이 전달되었다고 표시되면 프롬프트가 설치를 계속할 때까지 기다립니다.

    참고

    연결 검사에서 통과한 경우에도 네트워크 구성 설정을 보거나 변경하도록 선택할 수 있습니다.

    그러나 시간 초과를 두는 대신 에이전트 콘솔 애플리케이션과 상호 작용하도록 선택하는 경우 TUI를 수동으로 종료하여 설치를 진행해야 합니다.

  3. 에이전트 콘솔 애플리케이션 검사에 실패한 경우 릴리스 이미지 URL 가져오기 확인 옆에 빨간색 아이콘으로 표시되는 다음 단계를 사용하여 호스트의 네트워크 설정을 재구성합니다.

    1. TUI의 Check Errors 섹션을 읽으십시오. 이 섹션에는 실패한 검사와 관련된 오류 메시지가 표시됩니다.

      검사 오류를 표시하는 에이전트 콘솔 애플리케이션의 홈 화면
    2. Configure network 를 선택하여 NetworkManager TUI를 시작합니다.
    3. 연결 편집을 선택하고 재구성할 연결을 선택합니다.
    4. 구성을 편집하고 OK 를 선택하여 변경 사항을 저장합니다.
    5. Back 을 선택하여 NetworkManager TUI의 기본 화면으로 돌아갑니다.
    6. 연결 활성화를 선택합니다.
    7. 재구성된 네트워크를 선택하여 비활성화합니다.
    8. 재구성된 네트워크를 다시 선택하여 다시 활성화합니다.
    9. Back 을 선택한 다음 Quit 를 선택하여 에이전트 콘솔 애플리케이션으로 돌아갑니다.
    10. 새 네트워크 구성을 사용하여 연속 네트워크 검사를 다시 시작할 때까지 5초 이상 기다립니다.
    11. 릴리스 이미지 URL 가져오기 검사가 성공하고 URL 옆에 녹색 아이콘이 표시되면 Quit 를 선택하여 에이전트 콘솔 애플리케이션을 종료하고 설치를 계속합니다.

4.2.8. 설치 진행 상황 추적 및 확인

다음 절차에 따라 설치 진행 상황을 추적하고 성공적으로 설치되었는지 확인합니다.

사전 요구 사항

  • Kubernetes API 서버에 대한 DNS 레코드를 구성했습니다.

프로세스

  1. 선택 사항: 부트스트랩 호스트(신규 호스트)가 재부팅되는 시기를 확인하려면 다음 명령을 실행합니다.

    $ ./openshift-install --dir <install_directory> agent wait-for bootstrap-complete \1
        --log-level=info 2
    1
    & lt;install_directory > 의 경우 에이전트 ISO가 생성된 디렉터리의 경로를 지정합니다.
    2
    다른 설치 세부 사항을 보려면 info 대신 warn, debug 또는 error를 지정합니다.

    출력 예

    ...................................................................
    ...................................................................
    INFO Bootstrap configMap status is complete
    INFO cluster bootstrap is complete

    이 명령은 Kubernetes API 서버가 컨트롤 플레인 시스템에서 부트스트랩되었다는 신호를 보낼 때 성공합니다.

  2. 진행 상황을 추적하고 성공적으로 설치를 확인하려면 다음 명령을 실행합니다.

    $ openshift-install --dir <install_directory> agent wait-for install-complete 1
    1
    & lt;install_directory > 디렉터리에 대해 에이전트 ISO가 생성된 디렉터리의 경로를 지정합니다.

    출력 예

    ...................................................................
    ...................................................................
    INFO Cluster is installed
    INFO Install complete!
    INFO To access the cluster as the system:admin user when using 'oc', run
    INFO     export KUBECONFIG=/home/core/installer/auth/kubeconfig
    INFO Access the OpenShift web-console here: https://console-openshift-console.apps.sno-cluster.test.example.com

참고

GitOps ZTP 매니페스트의 선택적 방법을 사용하는 경우 다음 세 가지 방법으로 AgentClusterInstall.yaml 파일을 통해 클러스터 노드의 IP 주소 끝점을 구성할 수 있습니다.

  • IPv4
  • IPv6
  • IPv4 및 IPv6 병렬(dual-stack)

IPv6는 베어 메탈 플랫폼에서만 지원됩니다.

듀얼 스택 네트워킹의 예

apiVIP: 192.168.11.3
ingressVIP: 192.168.11.4
clusterDeploymentRef:
  name: mycluster
imageSetRef:
  name: openshift-4.15
networking:
  clusterNetwork:
  - cidr: 172.21.0.0/16
    hostPrefix: 23
  - cidr: fd02::/48
    hostPrefix: 64
  machineNetwork:
  - cidr: 192.168.11.0/16
  - cidr: 2001:DB8::/32
  serviceNetwork:
  - 172.22.0.0/16
  - fd03::/112
  networkType: OVNKubernetes

추가 리소스

4.3. GitOps ZTP 사용자 정의 리소스 샘플

선택적으로 ZTP(ZTP) 사용자 정의 리소스(CR) 오브젝트를 사용하여 에이전트 기반 설치 관리자를 사용하여 OpenShift Container Platform 클러스터를 설치할 수 있습니다.

다음 GitOps ZTP 사용자 정의 리소스를 사용자 지정하여 OpenShift Container Platform 클러스터에 대한 자세한 정보를 지정할 수 있습니다. 다음 샘플 GitOps ZTP 사용자 정의 리소스는 단일 노드 클러스터용입니다.

agent-cluster-install.yaml 파일의 예

  apiVersion: extensions.hive.openshift.io/v1beta1
  kind: AgentClusterInstall
  metadata:
    name: test-agent-cluster-install
    namespace: cluster0
  spec:
    clusterDeploymentRef:
      name: ostest
    imageSetRef:
      name: openshift-4.15
    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      serviceNetwork:
      - 172.30.0.0/16
    provisionRequirements:
      controlPlaneAgents: 1
      workerAgents: 0
    sshPublicKey: <ssh_public_key>

cluster-deployment.yaml 파일 예

apiVersion: hive.openshift.io/v1
kind: ClusterDeployment
metadata:
  name: ostest
  namespace: cluster0
spec:
  baseDomain: test.metalkube.org
  clusterInstallRef:
    group: extensions.hive.openshift.io
    kind: AgentClusterInstall
    name: test-agent-cluster-install
    version: v1beta1
  clusterName: ostest
  controlPlaneConfig:
    servingCertificates: {}
  platform:
    agentBareMetal:
      agentSelector:
        matchLabels:
          bla: aaa
  pullSecretRef:
    name: pull-secret

cluster-image-set.yaml 파일의 예

apiVersion: hive.openshift.io/v1
kind: ClusterImageSet
metadata:
  name: openshift-4.15
spec:
  releaseImage: registry.ci.openshift.org/ocp/release:4.15.0-0.nightly-2022-06-06-025509

infra-env.yaml 파일 예

apiVersion: agent-install.openshift.io/v1beta1
kind: InfraEnv
metadata:
  name: myinfraenv
  namespace: cluster0
spec:
  clusterRef:
    name: ostest
    namespace: cluster0
  cpuArchitecture: aarch64
  pullSecretRef:
    name: pull-secret
  sshAuthorizedKey: <ssh_public_key>
  nmStateConfigLabelSelector:
    matchLabels:
      cluster0-nmstate-label-name: cluster0-nmstate-label-value

nmstateconfig.yaml 파일 예

apiVersion: agent-install.openshift.io/v1beta1
kind: NMStateConfig
metadata:
  name: master-0
  namespace: openshift-machine-api
  labels:
    cluster0-nmstate-label-name: cluster0-nmstate-label-value
spec:
  config:
    interfaces:
      - name: eth0
        type: ethernet
        state: up
        mac-address: 52:54:01:aa:aa:a1
        ipv4:
          enabled: true
          address:
            - ip: 192.168.122.2
              prefix-length: 23
          dhcp: false
    dns-resolver:
      config:
        server:
          - 192.168.122.1
    routes:
      config:
        - destination: 0.0.0.0/0
          next-hop-address: 192.168.122.1
          next-hop-interface: eth0
          table-id: 254
  interfaces:
    - name: "eth0"
      macAddress: 52:54:01:aa:aa:a1

pull-secret.yaml 파일 예

apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
  name: pull-secret
  namespace: cluster0
stringData:
  .dockerconfigjson: <pull_secret>

추가 리소스

4.4. 에이전트 기반 설치 실패에서 로그 데이터 수집

다음 절차에 따라 지원 케이스를 제공하기 위해 실패한 에이전트 기반 설치에 대한 로그 데이터를 수집합니다.

사전 요구 사항

  • Kubernetes API 서버에 대한 DNS 레코드를 구성했습니다.

프로세스

  1. 다음 명령을 실행하고 출력을 수집합니다.

    $ ./openshift-install --dir <installation_directory> agent wait-for bootstrap-complete --log-level=debug

    오류 메시지의 예

    ...
    ERROR Bootstrap failed to complete: : bootstrap process timed out: context deadline exceeded

  2. 이전 명령의 출력에 실패가 표시되거나 부트스트랩이 진행되지 않은 경우 다음 명령을 실행하여ndezvous 호스트에 연결하고 출력을 수집합니다.

    $ ssh core@<node-ip> agent-gather -O >agent-gather.tar.xz
    참고

    Red Hat 지원은 rendezvous 호스트에서 수집된 데이터를 사용하여 대부분의 문제를 진단할 수 있지만 일부 호스트가 등록할 수 없는 경우 모든 호스트에서 이 데이터를 수집하는 것이 유용할 수 있습니다.

  3. 부트스트랩이 완료되고 클러스터 노드가 재부팅되면 다음 명령을 실행하고 출력을 수집합니다.

    $ ./openshift-install --dir <install_directory> agent wait-for install-complete --log-level=debug
  4. 이전 명령의 출력에 오류가 표시되면 다음 단계를 수행합니다.

    1. 다음 명령을 실행하여 kubeconfig 파일을 환경으로 내보냅니다.

      $ export KUBECONFIG=<install_directory>/auth/kubeconfig
    2. 다음 명령을 실행하여 디버깅에 대한 정보를 수집합니다.

      $ oc adm must-gather
    3. 다음 명령을 실행하여 작업 디렉터리에 생성된 must-gather 디렉터리에서 압축 파일을 만듭니다.

      $ tar cvaf must-gather.tar.gz <must_gather_directory>
  5. /auth 하위 디렉토리를 제외하고 배포 중에 사용되는 설치 디렉터리를 Red Hat 고객 포털 의 지원 케이스에 연결합니다.
  6. 이 절차에서 수집된 다른 모든 데이터를 지원 케이스에 첨부합니다.

5장. OpenShift Container Platform의 PXE 자산 준비

다음 절차에 따라 에이전트 기반 설치 관리자를 사용하여 OpenShift Container Platform 클러스터를 PXE 부팅하는 데 필요한 자산을 생성합니다.

이러한 절차에서 생성하는 자산은 단일 노드 OpenShift Container Platform 설치를 배포합니다. 이러한 절차를 기반으로 사용하고 요구 사항에 따라 구성을 수정할 수 있습니다.

에이전트 기반 설치 관리자에서 사용할 수 있는 추가 구성에 대한 자세한 내용은 에이전트 기반 설치 관리자를 사용하여 OpenShift Container Platform 클러스터 설치를 참조하십시오.

5.1. 사전 요구 사항

5.2. 에이전트 기반 설치 프로그램 다운로드

다음 절차를 사용하여 에이전트 기반 설치 프로그램 및 설치에 필요한 CLI를 다운로드합니다.

참고

현재 에이전트 기반 설치 관리자 다운로드는 IBM Z® (s390x) 아키텍처에서 지원되지 않습니다. 권장되는 방법은 PXE 자산을 생성하는 것입니다.

프로세스

  1. 로그인 인증 정보를 사용하여 OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. Datacenter 로 이동합니다.
  3. 로컬 에서 에이전트 기반 설치 관리자 실행을 클릭합니다.
  4. OpenShift 설치 프로그램명령줄 인터페이스 의 운영 체제 및 아키텍처를 선택합니다.
  5. 설치 프로그램 다운로드를 클릭하여 설치 프로그램을 다운로드하고 추출합니다.
  6. 풀 시크릿 다운로드를 클릭하거나 풀 시크릿 복사를 클릭하여 풀 시크릿을 다운로드하거나 복사합니다.
  7. 명령행 툴 다운로드를 클릭하고 openshift-install 바이너리를 PATH 에 있는 디렉터리에 배치합니다.

5.3. 기본 구성 입력 생성

다음 절차를 사용하여 PXE 파일을 생성하는 데 사용되는 기본 구성 입력을 생성합니다.

프로세스

  1. 다음 명령을 실행하여 nmstate 종속성을 설치합니다.

    $ sudo dnf install /usr/bin/nmstatectl -y
  2. openshift-install 바이너리를 PATH에 있는 디렉터리에 배치합니다.
  3. 다음 명령을 실행하여 설치 구성을 저장할 디렉터리를 생성합니다.

    $ mkdir ~/<directory_name>
    참고

    에이전트 기반 설치에 권장되는 방법입니다. GitOps ZTP 매니페스트 사용은 선택 사항입니다.

  4. 다음 명령을 실행하여 install-config.yaml 파일을 생성합니다.

    $ cat << EOF > ./<directory_name>/install-config.yaml
    apiVersion: v1
    baseDomain: test.example.com
    compute:
    - architecture: amd64 1
      hyperthreading: Enabled
      name: worker
      replicas: 0
    controlPlane:
      architecture: amd64
      hyperthreading: Enabled
      name: master
      replicas: 1
    metadata:
      name: sno-cluster 2
    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      machineNetwork:
      - cidr: 192.168.0.0/16
      networkType: OVNKubernetes 3
      serviceNetwork:
      - 172.30.0.0/16
    platform: 4
      none: {}
    pullSecret: '<pull_secret>' 5
    sshKey: '<ssh_pub_key>' 6
    EOF
    1
    시스템 아키텍처를 지정하고 유효한 값은 amd64,arm64,ppc64le, s390x 입니다.
    2
    필수 항목입니다. 클러스터 이름을 지정합니다.
    3
    설치할 클러스터 네트워크 플러그인입니다. 기본 값 OVNKubernetes 는 지원되는 유일한 값입니다.
    4
    플랫폼을 지정합니다.
    참고

    베어 메탈 플랫폼의 경우 agent-config.yaml 파일에서 만든 구성으로 재정의하지 않는 한 install-config.yaml 파일의 platform 섹션에서 만든 호스트 설정이 기본적으로 사용됩니다.

    5
    풀 시크릿을 지정합니다.
    6
    SSH 공개 키를 지정합니다.
    참고

    플랫폼을 vSphere 또는 baremetal 로 설정하면 다음 세 가지 방법으로 클러스터 노드의 IP 주소 끝점을 구성할 수 있습니다.

    • IPv4
    • IPv6
    • IPv4 및 IPv6 병렬(dual-stack)

    IPv6는 베어 메탈 플랫폼에서만 지원됩니다.

    듀얼 스택 네트워킹의 예

    networking:
      clusterNetwork:
        - cidr: 172.21.0.0/16
          hostPrefix: 23
        - cidr: fd02::/48
          hostPrefix: 64
      machineNetwork:
        - cidr: 192.168.11.0/16
        - cidr: 2001:DB8::/32
      serviceNetwork:
        - 172.22.0.0/16
        - fd03::/112
      networkType: OVNKubernetes
    platform:
      baremetal:
        apiVIPs:
        - 192.168.11.3
        - 2001:DB8::4
        ingressVIPs:
        - 192.168.11.4
        - 2001:DB8::5

    참고

    연결이 끊긴 미러 레지스트리를 사용하는 경우 미러 레지스트리에 대해 이전에 생성한 인증서 파일을 install-config.yaml 파일의 additionalTrustBundle 필드에 추가해야 합니다.

  5. 다음 명령을 실행하여 agent-config.yaml 파일을 생성합니다.

    $ cat > agent-config.yaml << EOF
    apiVersion: v1beta1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80 1
    hosts: 2
      - hostname: master-0 3
        interfaces:
          - name: eno1
            macAddress: 00:ef:44:21:e6:a5
        rootDeviceHints: 4
          deviceName: /dev/sdb
        networkConfig: 5
          interfaces:
            - name: eno1
              type: ethernet
              state: up
              mac-address: 00:ef:44:21:e6:a5
              ipv4:
                enabled: true
                address:
                  - ip: 192.168.111.80
                    prefix-length: 23
                dhcp: false
          dns-resolver:
            config:
              server:
                - 192.168.111.1
          routes:
            config:
              - destination: 0.0.0.0/0
                next-hop-address: 192.168.111.2
                next-hop-interface: eno1
                table-id: 254
    EOF
    1
    이 IP 주소는 부트스트랩 프로세스를 수행하고 assisted-service 구성 요소를 실행하는 노드를 결정하는 데 사용됩니다. networkConfig 매개변수에 하나 이상의 호스트의 IP 주소를 지정하지 않는 경우 rendezvous IP 주소를 제공해야 합니다. 이 주소를 제공하지 않으면 제공된 호스트의 networkConfig 에서 하나의 IP 주소가 선택됩니다.
    2
    선택 사항: 호스트 구성. 정의된 호스트 수는 compute.replicascontrolPlane.replicas 매개변수 값의 합계인 install-config.yaml 파일에 정의된 총 호스트 수를 초과해서는 안 됩니다.
    3
    선택 사항: DHCP(Dynamic Host Configuration Protocol) 또는 역방향 DNS 조회에서 얻은 호스트 이름을 재정의합니다. 각 호스트에는 이러한 방법 중 하나에서 제공하는 고유한 호스트 이름이 있어야 합니다.
    4
    특정 장치에 대한 RHCOS(Red Hat Enterprise Linux CoreOS) 이미지의 프로비저닝을 활성화합니다. 설치 프로그램은 장치를 검색한 순서대로 검사하고 검색된 값을 팁과 비교합니다. 힌트 값과 일치하는 첫 번째 검색된 장치를 사용합니다.
    5
    선택 사항: NMState 형식으로 호스트의 네트워크 인터페이스를 구성합니다.
  6. 선택 사항: iPXE 스크립트를 생성하려면 agent-config.yaml 파일에 bootArtifactsBaseURL 을 추가합니다.

    apiVersion: v1beta1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80
    bootArtifactsBaseURL: <asset_server_URL>

    여기서 <asset_server_URL >은 PXE 자산을 업로드할 서버의 URL입니다.

5.4. PXE 자산 생성

다음 절차에 따라 PXE 인프라에 구현할 자산 및 선택적 스크립트를 생성합니다.

프로세스

  1. 다음 명령을 실행하여 PXE 자산을 생성합니다.

    $ openshift-install agent create pxe-files

    생성된 PXE 자산 및 선택적 iPXE 스크립트는 boot-artifacts 디렉터리에서 확인할 수 있습니다.

    PXE 자산 및 선택적 iPXE 스크립트가 있는 파일 시스템의 예

    boot-artifacts
        ├─ agent.x86_64-initrd.img
        ├─ agent.x86_64.ipxe
        ├─ agent.x86_64-rootfs.img
        └─ agent.x86_64-vmlinuz

    중요

    boot-artifacts 디렉터리의 내용은 지정된 아키텍처에 따라 다릅니다.

    참고

    RHCOS(Red Hat Enterprise Linux CoreOS)는 기본 디스크에서 다중 경로를 지원하므로 하드웨어 장애에 대한 탄력성이 강화된 호스트 가용성을 높일 수 있습니다. 기본 /etc/multipath.conf 구성이 있는 에이전트 ISO 이미지에서 멀티패스는 기본적으로 활성화됩니다.

  2. 부팅 프로세스 중에 액세스할 수 있는 인프라에 PXE 자산 및 선택적 스크립트를 업로드합니다.

    참고

    iPXE 스크립트를 생성한 경우 자산 위치는 agent-config.yaml 파일에 추가한 bootArtifactsBaseURL 과 일치해야 합니다.

5.5. 수동으로 IBM Z 에이전트 추가

PXE 자산을 생성한 후 IBM Z® 에이전트를 추가할 수 있습니다. IBM Z® 클러스터에만 이 절차를 사용하십시오.

참고

현재 IBM Z® (s390x) 아키텍처에서는 ISO 부팅이 지원되지 않습니다. 따라서 IBM Z®의 에이전트 기반 설치에는 IBM Z® 에이전트를 수동으로 추가해야 합니다.

IBM Z® 환경에 따라 다음 옵션 중에서 선택할 수 있습니다.

  • z/VM을 사용하여 IBM Z® 에이전트 추가
  • RHEL KVM을 사용하여 IBM Z® 에이전트 추가

5.5.1. z/VM을 사용하여 IBM Z 에이전트 추가

다음 절차에 따라 z/VM과 함께 IBM Z® 에이전트를 수동으로 추가합니다. z/VM이 있는 IBM Z® 클러스터에만 이 절차를 사용하십시오.

프로세스

  1. z/VM 게스트에 대한 매개변수 파일을 생성합니다.

    매개변수 파일 예

    rd.neednet=1 \
    console=ttysclp0 \
    coreos.live.rootfs_url=<rootfs_url> \ 1
    ip=172.18.78.2::172.18.78.1:255.255.255.0:::none nameserver=172.18.78.1 \ 2
    zfcp.allow_lun_scan=0 \ 3
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.dasd=0.0.4411 \ 4
    rd.zfcp=0.0.8001,0x50050763040051e3,0x4000406300000000 \ 5
    random.trust_cpu=on rd.luks.options=discard \
    ignition.firstboot ignition.platform.id=metal \
    console=tty1 console=ttyS1,115200n8 \
    coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8"

    1
    coreos.live.rootfs_url 아티팩트의 경우 부팅 중인 커널initramfs 와 일치하는 rootfs 아티팩트를 지정합니다. HTTP 및 HTTPS 프로토콜만 지원됩니다.
    2
    ip 매개변수의 경우 "IBM Z® 및 IBM® LinuxONE에 z/VM으로 클러스터 설치"에 설명된 대로 DHCP를 사용하여 자동으로 IP 주소를 할당하거나 IP 주소를 수동으로 할당합니다.
    3
    기본값은 1입니다. OSA 네트워크 어댑터를 사용하는 경우 이 항목을 생략합니다.
    4
    DASD 유형 디스크에 설치하는 경우 rd.dasd 를 사용하여 RHCOS(Red Hat Enterprise Linux CoreOS)를 설치할 DASD를 지정합니다. FCP 유형 디스크에 대해 이 항목을 생략합니다.
    5
    FCP 유형 디스크에 설치하려면 rd.zfcp=<adapter>,<wwpn>,<lun >을 사용하여 RHCOS를 설치할 FCP 디스크를 지정합니다. DASD 유형 디스크에 이 항목을 생략합니다.

    변경되지 않은 다른 모든 매개변수는 그대로 두십시오.

  2. kernel.img,generic.parm, initrd.img 파일을 z/VM 게스트 가상 머신의 가상 리더로 실행합니다.

    자세한 내용은 PUNCH (IBM 문서)를 참조하십시오.

    작은 정보

    CP PUNCH 명령을 사용하거나 Linux를 사용하는 경우 vmur 명령을 사용하여 두 개의 z/VM 게스트 가상 머신 간에 파일을 전송할 수 있습니다.

  3. 부트스트랩 머신의 대화식 모니터 시스템(CMS)에 로그인합니다.
  4. 다음 명령을 실행하여 리더의 부트스트랩 시스템을 IPL합니다.

    $ ipl c

    자세한 내용은 IPL (IBM 문서)을 참조하십시오.

5.5.2. RHEL KVM을 사용하여 IBM Z(R) 에이전트 추가

RHEL KVM에 IBM Z® 에이전트를 수동으로 추가하려면 다음 절차를 사용하십시오. RHEL KVM의 IBM Z® 클러스터에만 다음 절차를 사용하십시오.

프로세스

  1. RHEL KVM 머신을 부팅합니다.
  2. 가상 서버를 배포하려면 다음 매개변수를 사용하여 virt-install 명령을 실행합니다.

    $ virt-install \
       --name <vm_name> \
       --autostart \
       --ram=16384 \
       --cpu host \
       --vcpus=8 \
       --location <path_to_kernel_initrd_image>,kernel=kernel.img,initrd=initrd.img \1
       --disk <qcow_image_path> \
       --network network:macvtap ,mac=<mac_address> \
       --graphics none \
       --noautoconsole \
       --wait=-1 \
       --extra-args "rd.neednet=1 nameserver=<nameserver>" \
       --extra-args "ip=<IP>::<nameserver>::<hostname>:enc1:none" \
       --extra-args "coreos.live.rootfs_url=http://<http_server>:8080/agent.s390x-rootfs.img" \
       --extra-args "random.trust_cpu=on rd.luks.options=discard" \
       --extra-args "ignition.firstboot ignition.platform.id=metal" \
       --extra-args "console=tty1 console=ttyS1,115200n8" \
       --extra-args "coreos.inst.persistent-kargs=console=tty1 console=ttyS1,115200n8" \
       --osinfo detect=on,require=off
    1
    --location 매개변수의 경우 HTTP 또는 HTTPS 서버의 kernel/initrd 위치를 지정합니다.

6장. Kubernetes Operator용 다중 클러스터 엔진을 위한 에이전트 기반 설치 클러스터 준비

다중 클러스터 엔진 Operator를 설치하고 에이전트 기반 OpenShift Container Platform 설치 프로그램을 사용하여 허브 클러스터를 배포할 수 있습니다. 다음 절차는 부분적으로 자동화되며 초기 클러스터를 배포한 후 수동 단계가 필요합니다.

6.1. 사전 요구 사항

6.2. 연결이 끊긴 동안 Kubernetes Operator용 다중 클러스터 엔진을 위한 에이전트 기반 클러스터 배포 준비

연결이 끊긴 환경의 필요한 OpenShift Container Platform 컨테이너 이미지, 다중 클러스터 엔진 Operator 및 LSO(Local Storage Operator)를 로컬 미러 레지스트리에 미러링할 수 있습니다. 미러 레지스트리의 로컬 DNS 호스트 이름과 포트를 기록해야 합니다.

참고

OpenShift Container Platform 이미지 저장소를 미러 레지스트리에 미러링하려면 oc adm release image 또는 oc mirror 명령을 사용할 수 있습니다. 이 절차에서는 oc mirror 명령이 예제로 사용됩니다.

프로세스

  1. 유효한 install-config.yamlagent-config.yaml 파일을 포함할 < assets_directory > 폴더를 생성합니다. 이 디렉터리는 모든 자산을 저장하는 데 사용됩니다.
  2. OpenShift Container Platform 이미지 리포지토리, 다중 클러스터 엔진 및 LSO를 미러링하려면 다음 설정으로 ImageSetConfiguration.yaml 파일을 생성합니다.

    Example ImageSetConfiguration.yaml

      kind: ImageSetConfiguration
      apiVersion: mirror.openshift.io/v1alpha2
      archiveSize: 4 1
      storageConfig: 2
        imageURL: <your-local-registry-dns-name>:<your-local-registry-port>/mirror/oc-mirror-metadata 3
        skipTLS: true
      mirror:
        platform:
          architectures:
            - "amd64"
          channels:
            - name: stable-4.15 4
              type: ocp
        additionalImages:
          - name: registry.redhat.io/ubi9/ubi:latest
        operators:
          - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15 5
            packages: 6
              - name: multicluster-engine 7
              - name: local-storage-operator 8

    1
    이미지 세트 내의 각 파일의 최대 크기(GiB)를 지정합니다.
    2
    이미지 세트 메타데이터를 수신할 백엔드 위치를 설정합니다. 이 위치는 레지스트리 또는 로컬 디렉터리일 수 있습니다. storageConfig 값을 지정해야 합니다.
    3
    스토리지 백엔드의 레지스트리 URL을 설정합니다.
    4
    설치 중인 버전의 OpenShift Container Platform 이미지가 포함된 채널을 설정합니다.
    5
    설치 중인 OpenShift Container Platform 이미지가 포함된 Operator 카탈로그를 설정합니다.
    6
    이미지 세트에 포함할 특정 Operator 패키지 및 채널만 지정합니다. 이 필드를 제거하여 카탈로그의 모든 패키지를 검색합니다.
    7
    멀티 클러스터 엔진 패키지 및 채널.
    8
    LSO 패키지 및 채널
    참고

    이 파일은 콘텐츠를 미러링할 때 oc mirror 명령에 필요합니다.

  3. 특정 OpenShift Container Platform 이미지 저장소, 다중 클러스터 엔진 및 LSO를 미러링하려면 다음 명령을 실행합니다.

    $ oc mirror --dest-skip-tls --config ocp-mce-imageset.yaml docker://<your-local-registry-dns-name>:<your-local-registry-port>
  4. install-config.yaml 파일에서 레지스트리 및 인증서를 업데이트합니다.

    Example imageContentSources.yaml

      imageContentSources:
        - source: "quay.io/openshift-release-dev/ocp-release"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/openshift/release-images"
        - source: "quay.io/openshift-release-dev/ocp-v4.0-art-dev"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/openshift/release"
        - source: "registry.redhat.io/ubi9"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/ubi9"
        - source: "registry.redhat.io/multicluster-engine"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/multicluster-engine"
        - source: "registry.redhat.io/rhel8"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/rhel8"
        - source: "registry.redhat.io/redhat"
          mirrors:
            - "<your-local-registry-dns-name>:<your-local-registry-port>/redhat"

    또한 install-config.yamladditionalTrustBundle 필드에 인증서가 있는지 확인합니다.

    예: install-config.yaml

    additionalTrustBundle: |
      -----BEGIN CERTIFICATE-----
      zzzzzzzzzzz
      -----END CERTIFICATE-------

    중요

    oc mirror 명령은 여러 출력을 사용하여 oc-mirror-workspace 라는 폴더를 생성합니다. 여기에는 OpenShift Container Platform 및 선택한 Operator에 필요한 모든 미러를 식별하는 imageContentSourcePolicy.yaml 파일이 포함됩니다.

  5. 다음 명령을 실행하여 클러스터 매니페스트를 생성합니다.

    $ openshift-install agent create cluster-manifests

    이 명령은 미러 구성이 포함된 미러 폴더를 포함하도록 클러스터 매니페스트 폴더를 업데이트합니다.

6.3. 연결된 동안 Kubernetes Operator용 다중 클러스터 엔진을 위한 에이전트 기반 클러스터 배포 준비

다중 클러스터 엔진 Operator, LSO(Local Storage Operator)에 필요한 매니페스트를 생성하고 에이전트 기반 OpenShift Container Platform 클러스터를 허브 클러스터로 배포합니다.

프로세스

  1. < assets_directory> 폴더에 openshift 라는 하위 폴더를 생성합니다. 이 하위 폴더는 배포된 클러스터를 추가로 사용자 지정하기 위해 설치 중에 적용할 추가 매니페스트를 저장하는 데 사용됩니다. & lt;assets_directory > 폴더에는 install-config.yamlagent-config.yaml 파일을 포함한 모든 자산이 포함되어 있습니다.

    참고

    설치 프로그램에서 추가 매니페스트를 확인하지 않습니다.

  2. 다중 클러스터 엔진의 경우 다음 매니페스트를 생성하여 < assets_directory>/openshift 폴더에 저장합니다.

    Example mce_namespace.yaml

      apiVersion: v1
      kind: Namespace
      metadata:
        labels:
          openshift.io/cluster-monitoring: "true"
        name: multicluster-engine

    Example mce_operatorgroup.yaml

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: multicluster-engine-operatorgroup
        namespace: multicluster-engine
      spec:
        targetNamespaces:
        - multicluster-engine

    Example mce_subscription.yaml

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: multicluster-engine
        namespace: multicluster-engine
      spec:
        channel: "stable-2.3"
        name: multicluster-engine
        source: redhat-operators
        sourceNamespace: openshift-marketplace

    참고

    지원되는 설치 관리자(AI)를 사용하여 RHACM(Red Hat Advanced Cluster Management)을 사용하여 대규모로 DCU(Distributed Unit)를 설치할 수 있습니다. 이러한 분산 단위는 hub 클러스터에서 활성화되어야 합니다. AI 서비스에는 수동으로 생성되는 PV(영구 볼륨)가 필요합니다.

  3. AI 서비스의 경우 다음 매니페스트를 생성하여 < assets_directory>/openshift 폴더에 저장합니다.

    Example lso_namespace.yaml

      apiVersion: v1
      kind: Namespace
      metadata:
        annotations:
          openshift.io/cluster-monitoring: "true"
        name: openshift-local-storage

    Example lso_operatorgroup.yaml

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: local-operator-group
        namespace: openshift-local-storage
      spec:
        targetNamespaces:
          - openshift-local-storage

    Example lso_subscription.yaml

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: local-storage-operator
        namespace: openshift-local-storage
      spec:
        installPlanApproval: Automatic
        name: local-storage-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace

    참고

    모든 매니페스트를 생성한 후 파일 시스템이 다음과 같이 표시되어야 합니다.

    파일 시스템 예

    <assets_directory>
        ├─ install-config.yaml
        ├─ agent-config.yaml
        └─ /openshift
            ├─ mce_namespace.yaml
            ├─ mce_operatorgroup.yaml
            ├─ mce_subscription.yaml
            ├─ lso_namespace.yaml
            ├─ lso_operatorgroup.yaml
            └─ lso_subscription.yaml

  4. 다음 명령을 실행하여 에이전트 ISO 이미지를 생성합니다.

    $ openshift-install agent create image --dir <assets_directory>
  5. 이미지가 준비되면 대상 시스템을 부팅하고 설치가 완료될 때까지 기다립니다.
  6. 설치를 모니터링하려면 다음 명령을 실행합니다.

    $ openshift-install agent wait-for install-complete --dir <assets_directory>
    참고

    완전한 기능 허브 클러스터를 구성하려면 다음 매니페스트를 생성하고 $ oc apply -f <manifest-name> 명령을 실행하여 수동으로 적용해야 합니다. 매니페스트 생성 순서가 중요하며 필요한 경우 대기 조건이 표시됩니다.

  7. AI 서비스에 필요한 PV의 경우 다음 매니페스트를 생성합니다.

      apiVersion: local.storage.openshift.io/v1
      kind: LocalVolume
      metadata:
       name: assisted-service
       namespace: openshift-local-storage
      spec:
       logLevel: Normal
       managementState: Managed
       storageClassDevices:
         - devicePaths:
             - /dev/vda
             - /dev/vdb
           storageClassName: assisted-service
           volumeMode: Filesystem
  8. 다음 명령을 사용하여 후속 매니페스트를 적용하기 전에 PV의 가용성을 기다립니다.

    $ oc wait localvolume -n openshift-local-storage assisted-service --for condition=Available --timeout 10m
    참고
    The `devicePath` is an example and may vary depending on the actual hardware configuration used.
  9. 다중 클러스터 엔진 인스턴스에 대한 매니페스트를 생성합니다.

    Example MultiClusterEngine.yaml

      apiVersion: multicluster.openshift.io/v1
      kind: MultiClusterEngine
      metadata:
        name: multiclusterengine
      spec: {}

  10. AI 서비스를 활성화하는 매니페스트를 생성합니다.

    agentserviceconfig.yaml

      apiVersion: agent-install.openshift.io/v1beta1
      kind: AgentServiceConfig
      metadata:
        name: agent
        namespace: assisted-installer
      spec:
       databaseStorage:
        storageClassName: assisted-service
        accessModes:
        - ReadWriteOnce
        resources:
         requests:
          storage: 10Gi
       filesystemStorage:
        storageClassName: assisted-service
        accessModes:
        - ReadWriteOnce
        resources:
         requests:
          storage: 10Gi

  11. 나중에 대화하는 클러스터를 배포할 매니페스트를 생성합니다.

    Example clusterimageset.yaml

      apiVersion: hive.openshift.io/v1
      kind: ClusterImageSet
      metadata:
        name: "4.15"
      spec:
        releaseImage: quay.io/openshift-release-dev/ocp-release:4.15.0-x86_64

  12. 에이전트가 설치된 클러스터(Multicluster 엔진 및 지원 서비스를 호스트)를 hub 클러스터 클러스터로 가져오는 매니페스트를 생성합니다.

    예: autoimport.yaml

      apiVersion: cluster.open-cluster-management.io/v1
      kind: ManagedCluster
      metadata:
       labels:
         local-cluster: "true"
         cloud: auto-detect
         vendor: auto-detect
       name: local-cluster
      spec:
       hubAcceptsClient: true

  13. 관리 클러스터가 생성될 때까지 기다립니다.

    $ oc wait -n multicluster-engine managedclusters local-cluster --for condition=ManagedClusterJoined=True --timeout 10m

검증

  • 관리 클러스터 설치에 성공했는지 확인하려면 다음 명령을 실행합니다.

    $ oc get managedcluster
    NAME            HUB ACCEPTED   MANAGED CLUSTER URLS             JOINED   AVAILABLE  AGE
    local-cluster   true           https://<your cluster url>:6443   True     True       77m

추가 리소스

7장. 에이전트 기반 설치 관리자에 대한 설치 구성 매개변수

에이전트 기반 설치 관리자를 사용하여 OpenShift Container Platform 클러스터를 배포하기 전에 클러스터와 이를 호스팅하는 플랫폼을 사용자 지정하는 매개변수를 제공합니다. install-config.yamlagent-config.yaml 파일을 생성할 때 필수 매개변수의 값을 제공해야 하며 선택적 매개변수를 사용하여 클러스터를 추가로 사용자 지정할 수 있습니다.

7.1. 사용 가능한 설치 구성 매개변수

다음 표에서는 에이전트 기반 설치 프로세스의 일부로 설정할 수 있는 필수 및 선택적 설치 구성 매개변수를 지정합니다.

이러한 값은 install-config.yaml 파일에 지정됩니다.

참고

이러한 설정은 설치에만 사용되며 설치 후에는 수정할 수 없습니다.

7.1.1. 필수 구성 매개변수

필수 설치 구성 매개변수는 다음 표에 설명되어 있습니다.

표 7.1. 필수 매개 변수
매개변수설명
apiVersion:

install-config.yaml 콘텐츠의 API 버전입니다. 현재 버전은 v1입니다. 설치 프로그램에서 이전 API 버전도 지원할 수 있습니다.

문자열

baseDomain:

클라우드 공급자의 기본 도메인입니다. 기본 도메인은 OpenShift Container Platform 클러스터 구성 요소에 대한 경로를 생성하는 데 사용됩니다. 클러스터의 전체 DNS 이름은 baseDomainmetadata.name 매개변수 값의 조합으로, <metadata.name>.<baseDomain> 형식입니다.

정규화된 도메인 또는 하위 도메인 이름(예: example.com).

metadata:

Kubernetes 리소스 ObjectMetaname 매개변수만 사용합니다.

개체

metadata:
  name:

클러스터의 이름입니다. 클러스터의 DNS 레코드는 {{.metadata.name}}.{{. baseDomain}} 형식의 모든 하위 도메인입니다. 예를 들어 ZTP 매니페스트만 사용하는 경우 install-config.yaml 또는 agent-config.yaml 파일을 통해 metadata.name 을 지정하지 않으면 클러스터 이름이 agent-cluster 로 설정됩니다.

소문자, 하이픈(-), 마침표(.)로 구성되는 문자열(예: dev)입니다.

platform:

설치를 수행할 특정 플랫폼에 대한 구성: baremetal,external,none 또는 vsphere.

개체

pullSecret:

Red Hat OpenShift Cluster Manager에서 풀 시크릿 을 가져와서 Quay.io와 같은 서비스에서 OpenShift Container Platform 구성 요소의 컨테이너 이미지 다운로드를 인증합니다.

{
   "auths":{
      "cloud.openshift.com":{
         "auth":"b3Blb=",
         "email":"you@example.com"
      },
      "quay.io":{
         "auth":"b3Blb=",
         "email":"you@example.com"
      }
   }
}

7.1.2. 네트워크 구성 매개변수

기존 네트워크 인프라의 요구 사항에 따라 설치 구성을 사용자 지정할 수 있습니다. 예를 들어 클러스터 네트워크의 IP 주소 블록을 확장하거나 기본값과 다른 IP 주소 블록을 제공할 수 있습니다.

  • Red Hat OpenShift Networking OVN-Kubernetes 네트워크 플러그인을 사용하는 경우 IPv4 및 IPv6 주소 제품군이 모두 지원됩니다.

두 IP 주소 제품군을 모두 사용하도록 클러스터를 구성하는 경우 다음 요구 사항을 검토하십시오.

  • 두 IP 제품군 모두 기본 게이트웨이에 동일한 네트워크 인터페이스를 사용해야 합니다.
  • 두 IP 제품군 모두 기본 게이트웨이가 있어야 합니다.
  • 모든 네트워크 구성 매개 변수에 대해 IPv4 및 IPv6 주소를 동일한 순서로 지정해야 합니다. 예를 들어 다음 구성 IPv4 주소는 IPv6 주소 앞에 나열됩니다.
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  - cidr: fd00:10:128::/56
    hostPrefix: 64
  serviceNetwork:
  - 172.30.0.0/16
  - fd00:172:16::/112
참고

Red Hat OpenShift Data Foundation 재해 복구 솔루션에서는 Globalnet이 지원되지 않습니다. 지역 재해 복구 시나리오의 경우 각 클러스터의 클러스터 및 서비스 네트워크에 대해 겹치지 않는 개인 IP 주소를 사용해야 합니다.

표 7.2. 네트워크 매개변수
매개변수설명
networking:

클러스터의 네트워크의 구성입니다.

개체

참고

설치한 후에는 networking 오브젝트에서 지정된 매개변수를 수정할 수 없습니다.

networking:
  networkType:

설치할 Red Hat OpenShift Networking 네트워크 플러그인입니다.

OVNKubernetes. OVNKubernetes 는 Linux 네트워크 및 하이브리드 네트워크용 CNI 플러그인으로, Linux 및 Windows 서버가 모두 포함됩니다. 기본값은 OVNKubernetes 입니다.

networking:
  clusterNetwork:

Pod의 IP 주소 블록입니다.

기본값은 10.128.0.0/14이며, 호스트 접두사는 /23입니다.

여러 IP 주소 블록을 지정하는 경우 블록이 겹치지 않아야 합니다.

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

networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  - cidr: fd01::/48
    hostPrefix: 64
networking:
  clusterNetwork:
    cidr:

networking.clusterNetwork를 사용하는 경우 필수 항목입니다. IP 주소 블록입니다.

OVN-Kubernetes 네트워크 플러그인을 사용하는 경우 IPv4 및 IPv6 네트워크를 지정할 수 있습니다.

CIDR(Classless Inter-Domain Routing) 표기법의 IP 주소 블록입니다. IPv4 블록의 접두사 길이는 0에서 32 사이입니다. IPv6 블록의 접두사 길이는 0에서 128 사이입니다. 예를 들면 10.128.0.0/14 또는 fd01::/48입니다.

networking:
  clusterNetwork:
    hostPrefix:

개별 노드 각각에 할당할 서브넷 접두사 길이입니다. 예를 들어 hostPrefix23으로 설정하는 경우, 지정된 cidr 이외 /23 서브넷이 각 노드에 할당됩니다. 23hostPrefix 값은 510(2^(32 - 23) - 2) Pod IP 주소를 제공합니다.

서브넷 접두사입니다.

IPv4 네트워크의 경우 기본값은 23입니다. IPv6 네트워크의 경우 기본값은 64입니다. 기본값은 IPv6의 최소 값이기도 합니다.

networking:
  serviceNetwork:

서비스의 IP 주소 블록입니다. 기본값은 172.30.0.0/16입니다.

OVN-Kubernetes 네트워크 플러그인은 서비스 네트워크에 대한 단일 IP 주소 블록만 지원합니다.

OVN-Kubernetes 네트워크 플러그인을 사용하는 경우 IPv4 및 IPv6 주소 제품군 모두에 IP 주소 블록을 지정할 수 있습니다.

CIDR 형식의 IP 주소 블록이 있는 어레이입니다. 예를 들면 다음과 같습니다.

networking:
  serviceNetwork:
   - 172.30.0.0/16
   - fd02::/112
networking:
  machineNetwork:

시스템의 IP 주소 블록입니다.

여러 IP 주소 블록을 지정하는 경우 블록이 겹치지 않아야 합니다.

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

networking:
  machineNetwork:
  - cidr: 10.0.0.0/16
networking:
  machineNetwork:
    cidr:

networking.machineNetwork를 사용하는 경우 필수 항목입니다. IP 주소 블록입니다. libvirt 및 IBM Power® Virtual Server 이외의 모든 플랫폼의 기본값은 10.0.0.0/16 입니다. libvirt의 기본값은 192.168.126.0/24입니다. IBM Power® Virtual Server의 경우 기본값은 192.168.0.0/24 입니다.

CIDR 표기법의 IP 네트워크 블록입니다.

예를 들면 10.0.0.0/16 또는 fd00::/48입니다.

참고

기본 NIC가 상주하는 CIDR과 일치하도록 networking.machineNetwork를 설정합니다.

7.1.3. 선택적 구성 매개변수

선택적 설치 구성 매개변수는 다음 표에 설명되어 있습니다.

표 7.3. 선택적 매개변수
매개변수설명
additionalTrustBundle:

노드의 신뢰할 수 있는 인증서 스토리지에 추가되는 PEM 인코딩 X.509 인증서 번들입니다. 이 신뢰할 수 있는 번들은 프록시가 구성되었을 때에도 사용할 수 있습니다.

문자열

capabilities:

선택적 핵심 클러스터 구성 요소의 설치를 제어합니다. 선택적 구성 요소를 비활성화하여 OpenShift Container Platform 클러스터의 설치 공간을 줄일 수 있습니다. 자세한 내용은 설치 의 "클러스터 기능" 페이지를 참조하십시오.

문자열 배열

capabilities:
  baselineCapabilitySet:

활성화할 선택적 기능 세트를 선택합니다. 유효한 값은 None,v4.11,v4.12v Current 입니다. 기본값은 v current입니다.

문자열

capabilities:
  additionalEnabledCapabilities:

baselineCapabilitySet 에서 지정한 것 이상으로 선택적 기능 세트를 확장합니다. 이 매개변수에서 여러 기능을 지정할 수 있습니다.

문자열 배열

cpuPartitioningMode:

워크로드 파티셔닝을 통해 OpenShift Container Platform 서비스, 클러스터 관리 워크로드 및 인프라 Pod를 분리하여 예약된 CPU 세트에서 실행할 수 있습니다. 워크로드 파티셔닝은 설치 중에만 활성화할 수 있으며 설치 후에는 비활성화할 수 없습니다. 이 필드를 사용하면 워크로드 파티셔닝을 사용할 수 있지만 특정 CPU를 사용하도록 워크로드를 구성하지 않습니다. 자세한 내용은 확장 및 성능 섹션의 워크로드 파티션 페이지를 참조하십시오.

none 또는 AllNodes 기본값은 None 입니다.

compute:

컴퓨팅 노드를 구성하는 시스템의 구성입니다.

MachinePool 개체의 배열입니다.

compute:
  architecture:

풀에 있는 시스템의 명령어 집합 아키텍처를 결정합니다. 현재 다양한 아키텍처가 있는 클러스터는 지원되지 않습니다. 모든 풀은 동일한 아키텍처를 지정해야 합니다. 유효한 값은 amd64,arm64,ppc64le, s390x 입니다.

문자열

compute:
  hyperthreading:

컴퓨팅 시스템에서 동시 멀티스레딩 또는 hyperthreading 활성화 또는 비활성화 여부를 지정합니다. 시스템 코어의 성능을 높이기 위해 기본적으로 동시 멀티스레딩이 활성화됩니다.

중요

동시 멀티스레딩을 비활성화하는 경우 용량 계획에서 시스템 성능이 크게 저하될 수 있는 문제를 고려해야 합니다.

Enabled 또는 Disabled

compute:
  name:

compute를 사용하는 경우 필수 항목입니다. 시스템 풀의 이름입니다.

worker

compute:
  platform:

compute를 사용하는 경우 필수 항목입니다. 이 매개변수를 사용하여 작업자 시스템을 호스팅할 클라우드 공급자를 지정합니다. 이 매개변수 값은 controlPlane.platform 매개변수 값과 일치해야 합니다

baremetal,vsphere 또는 {}

compute:
  replicas:

프로비저닝할 컴퓨팅 시스템(작업자 시스템이라고도 함) 수입니다.

2 이상의 양의 정수이며, 기본값은 3입니다.

featureSet:

기능 세트를 위한 클러스터를 활성화합니다. 기능 세트는 기본적으로 활성화되어 있지 않은 OpenShift Container Platform 기능 컬렉션입니다. 설치 중에 기능 세트를 활성화하는 방법에 대한 자세한 내용은 "기능 게이트를 사용하여 기능 활성화"를 참조하십시오.

문자열. TechPreviewNoUpgrade 와 같이 활성화할 기능 세트의 이름입니다.

controlPlane:

컨트롤 플레인을 구성하는 시스템들의 구성입니다.

MachinePool 개체의 배열입니다.

controlPlane:
  architecture:

풀에 있는 시스템의 명령어 집합 아키텍처를 결정합니다. 현재 다양한 아키텍처가 있는 클러스터는 지원되지 않습니다. 모든 풀은 동일한 아키텍처를 지정해야 합니다. 유효한 값은 amd64,arm64,ppc64le, s390x 입니다.

문자열

controlPlane:
  hyperthreading:

컨트롤 플레인 시스템에서 동시 멀티스레딩 또는 hyperthreading 활성화 또는 비활성화 여부를 지정합니다. 시스템 코어의 성능을 높이기 위해 기본적으로 동시 멀티스레딩이 활성화됩니다.

중요

동시 멀티스레딩을 비활성화하는 경우 용량 계획에서 시스템 성능이 크게 저하될 수 있는 문제를 고려해야 합니다.

Enabled 또는 Disabled

controlPlane:
  name:

controlPlane을 사용하는 경우 필수 항목입니다. 시스템 풀의 이름입니다.

master

controlPlane:
  platform:

controlPlane을 사용하는 경우 필수 항목입니다. 이 매개변수를 사용하여 컨트롤 플레인 시스템을 호스팅하는 클라우드 공급자를 지정합니다. 이 매개변수 값은 compute.platform 매개변수 값과 일치해야 합니다.

baremetal,vsphere 또는 {}

controlPlane:
  replicas:

프로비저닝하는 컨트롤 플레인 시스템의 수입니다.

지원되는 값은 3 노드 또는 단일 노드 OpenShift를 배포할 때 1 입니다.

credentialsMode:

Cloud Credential Operator (CCO) 모드입니다. 모드가 지정되지 않은 경우 CCO는 여러 모드가 지원되는 플랫폼에서 Mint 모드가 우선으로 되어 지정된 인증 정보의 기능을 동적으로 확인하려고합니다.

Mint,Passthrough,Manual 또는 빈 문자열("") [1]

fips:

FIPS 모드를 활성화 또는 비활성화합니다. 기본값은 false(비활성화)입니다. FIPS 모드가 활성화되면 OpenShift Container Platform이 실행되는 RHCOS(Red Hat Enterprise Linux CoreOS) 시스템에서 기본 Kubernetes 암호화 제품군은 우회하고 RHCOS와 함께 제공되는 암호화 모듈을 대신 사용합니다.

중요

클러스터의 FIPS 모드를 활성화하려면 FIPS 모드에서 작동하도록 구성된 RHEL(Red Hat Enterprise Linux) 컴퓨터에서 설치 프로그램을 실행해야 합니다. RHEL에서 FIPS 모드 구성에 대한 자세한 내용은 FIPS 모드에서 시스템 설치를 참조하십시오. FIPS 모드에서 부팅된 RHEL(Red Hat Enterprise Linux CoreOS) 또는 RHCOS(Red Hat Enterprise Linux CoreOS)를 실행하는 경우 OpenShift Container Platform 코어 구성 요소는 x86_64, ppc64le 및 s390x 아키텍처에서만 FIPS 140-2/140-3 Validation에 대해 NIST에 제출된 RHEL 암호화 라이브러리를 사용합니다.

참고

Azure File 스토리지를 사용하는 경우 FIPS 모드를 활성화할 수 없습니다.

false 또는 true

imageContentSources:

릴리스 이미지 내용의 소스 및 리포지토리입니다.

개체의 배열입니다. 이 표의 다음 행에 설명된 대로 sourcemirrors(선택사항)가 포함됩니다.

imageContentSources:
  source:

imageContentSources를 사용하는 경우 필수 항목입니다. 예를 들어 이미지 가져오기 사양에서 사용자가 가리키는 리포지토리를 지정합니다.

문자열

imageContentSources:
  mirrors:

동일한 이미지를 포함할 수도 있는 하나 이상의 리포지토리를 지정합니다.

문자열 배열

publish:

Kubernetes API, OpenShift 경로와 같이 클러스터의 사용자 끝점을 게시하거나 노출하는 방법입니다.

Internal 또는 External입니다. 기본값은 External입니다.

이 필드를 Internal 로 설정하는 것은 클라우드 이외의 플랫폼에서는 지원되지 않습니다.

중요

필드 값을 Internal 로 설정하면 클러스터가 작동하지 않습니다. 자세한 내용은 BZ#1953035를 참조하십시오.

sshKey:

클러스터 시스템에 대한 액세스를 인증하는 SSH 키입니다.

참고

설치 디버깅 또는 재해 복구를 수행하려는 프로덕션 OpenShift Container Platform 클러스터의 경우 ssh-agent 프로세스가 사용하는 SSH 키를 지정합니다.

예를 들어 sshKey: ssh-ed25519 AAAA...

  1. 모든 클라우드 공급자에서 모든 CCO 모드가 지원되는 것은 아닙니다. CCO 모드에 대한 자세한 내용은 인증 및 권한 부여 콘텐츠의 "클라우드 공급자 인증 정보 관리" 항목을 참조하십시오.

7.1.4. 에이전트 기반 설치 프로그램에 대한 추가 베어 메탈 구성 매개변수

에이전트 기반 설치 관리자의 추가 베어 메탈 설치 구성 매개변수는 다음 표에 설명되어 있습니다.

참고

이러한 필드는 클러스터의 초기 프로비저닝 중에 사용되지 않지만 클러스터가 설치되면 사용할 수 있습니다. 설치 시 이러한 필드를 구성하면 Day 2 작업으로 설정할 필요가 없습니다.

표 7.4. 추가 베어 메탈 매개변수
매개변수설명
platform:
  baremetal:
    clusterProvisioningIP:

프로비저닝 서비스가 실행되는 클러스터 내의 IP 주소입니다. 기본값은 provisioning 서브넷의 세 번째 IP 주소입니다. 예: 172.22.0.3 또는 2620:52:0:1307::3.

IPv4 또는 IPv6 주소.

platform:
  baremetal:
    provisioningNetwork:

provisioningNetwork 구성 설정은 클러스터가 provisioning 네트워크를 사용하는지 여부를 결정합니다. 이 경우 구성 설정에서 클러스터가 네트워크를 관리하는지 여부도 결정합니다.

Managed: default. DHCP, TFTP 등을 포함한 프로비저닝 네트워크를 완전히 관리하려면 이 매개 변수를 Managed 로 설정합니다.

disabled: provisioning 네트워크의 요구 사항을 비활성화하려면 이 매개변수를 Disabled 로 설정합니다. Disabled 로 설정하면 Day 2에서 가상 미디어 기반 프로비저닝만 사용할 수 있습니다. Disabled 이고 전원 관리를 사용하는 경우 베어 메탈 네트워크에서 BMC에 액세스할 수 있어야 합니다. Disabled인 경우 프로비저닝 서비스에 사용되는 베어 메탈 네트워크에 두 개의 IP 주소를 제공해야 합니다.

관리 또는 비활성화.

platform:
  baremetal:
    provisioningMACAddress:

프로비저닝 서비스가 실행되는 클러스터 내의 MAC 주소입니다.

MAC 주소.

platform:
  baremetal:
    provisioningNetworkCIDR:

프로비저닝에 사용할 네트워크의 CIDR입니다. 이 옵션은 provisioning 네트워크에서 기본 주소 범위를 사용하지 않는 경우 필요합니다.

유효한 CIDR(예: 10.0.0.0/16)

platform:
  baremetal:
    provisioningNetworkInterface:

provisioning 네트워크에 연결된 노드의 네트워크 인터페이스 이름입니다. bootMACAddress 구성 설정을 사용하여 Ironic에서 provisioningNetworkInterface 구성 설정을 사용하여 NIC 이름을 식별하는 대신 NIC의 IP 주소를 식별할 수 있도록 합니다.

문자열.

platform:
  baremetal:
    provisioningDHCPRange:

provisioning 네트워크에서 노드의 IP 범위를 정의합니다(예: 172.22.0.10,172.22.0.254 ).

IP 주소 범위.

platform:
  baremetal:
    hosts:

베어 메탈 호스트에 대한 구성입니다.

호스트 구성 오브젝트의 배열입니다.

platform:
  baremetal:
    hosts:
      name:

호스트의 이름입니다.

문자열.

platform:
  baremetal:
    hosts:
      bootMACAddress:

호스트 프로비저닝에 사용되는 NIC의 MAC 주소입니다.

MAC 주소.

platform:
  baremetal:
    hosts:
      bmc:

BMC(Baseboard Management Controller)에 연결할 호스트에 대한 구성입니다.

BMC 구성 오브젝트의 사전입니다.

platform:
  baremetal:
    hosts:
      bmc:
        username:

BMC의 사용자 이름입니다.

문자열.

platform:
  baremetal:
    hosts:
      bmc:
        password:

BMC의 암호입니다.

문자열.

platform:
  baremetal:
    hosts:
      bmc:
        address:

호스트의 BMC 컨트롤러와 통신하기 위한 URL입니다. address 구성 설정은 프로토콜을 지정합니다. 예를 들어 redfish+http://10.10.10.1:8000/redfish/v1/Systems/1234 는 Redfish를 활성화합니다. 자세한 내용은 " 베어 메탈에 설치 관리자 프로비저닝 클러스터 배포" 섹션의 "BMC 주소 지정"을 참조하십시오.

URL.

platform:
  baremetal:
    hosts:
      bmc:
        disableCertificateVerification:

redfishredfish-virtualmedia 는 BMC 주소를 관리하기 위해 이 매개 변수가 필요합니다. BMC 주소에 자체 서명된 인증서를 사용하는 경우 값은 True 여야합니다.

부울.

7.1.5. 추가 VMware vSphere 구성 매개변수

추가 VMware vSphere 구성 매개변수는 다음 표에 설명되어 있습니다.

표 7.5. 추가 VMware vSphere 클러스터 매개변수
매개변수설명
platform:
  vsphere:

클러스터를 호스팅하는 클라우드 플랫폼의 계정을 설명합니다. 매개 변수를 사용하여 플랫폼을 사용자 지정할 수 있습니다. 머신 풀에서 컴퓨팅 및 컨트롤 플레인 시스템에 대한 추가 구성 설정을 제공하는 경우 매개변수가 필요하지 않습니다. OpenShift Container Platform 클러스터에 대해 하나의 vCenter 서버만 지정할 수 있습니다.

vSphere 구성 오브젝트 사전

platform:
  vsphere:
    failureDomains:

지역과 영역 간의 관계를 설정합니다. datastore 오브젝트와 같은 vCenter 오브젝트를 사용하여 실패 도메인을 정의합니다. 장애 도메인은 OpenShift Container Platform 클러스터 노드의 vCenter 위치를 정의합니다.

장애 도메인 구성 오브젝트의 배열입니다.

platform:
  vsphere:
    failureDomains:
      name:

실패 도메인의 이름입니다.

문자열

platform:
  vsphere:
    failureDomains:
      region:

클러스터의 장애 도메인을 여러 개 정의하는 경우 태그를 각 vCenter 데이터 센터에 연결해야 합니다. 리전을 정의하려면 openshift-region 태그 범주의 태그를 사용합니다. 단일 vSphere 데이터 센터 환경의 경우 태그를 연결할 필요는 없지만 매개 변수에 대해 데이터 센터와 같은 영숫자 값을 입력해야 합니다.

문자열

platform:
  vsphere:
    failureDomains:
      server:

클라이언트가 장애 도메인 리소스에 액세스할 수 있도록 VMware vCenter 서버의 정규화된 호스트 이름 또는 IP 주소를 지정합니다. vSphere vCenter 서버 위치에 서버 역할을 적용해야 합니다.

문자열

platform:
  vsphere:
    failureDomains:
      zone:

클러스터의 장애 도메인을 여러 개 정의하는 경우 태그를 각 vCenter 클러스터에 연결해야 합니다. 영역을 정의하려면 openshift-zone 태그 범주의 태그를 사용합니다. 단일 vSphere 데이터 센터 환경의 경우 태그를 연결할 필요는 없지만 매개 변수에 대해 클러스터와 같은 영숫자 값을 입력해야 합니다.

문자열

platform:
  vsphere:
    failureDomains:
      topology:
        computeCluster:

vSphere 컴퓨팅 클러스터의 경로입니다.

문자열

platform:
  vsphere:
    failureDomains:
      topology:
        datacenter:

OpenShift Container Platform VM(가상 머신)이 작동하는 데이터센터를 나열하고 정의합니다. 데이터센터 목록은 vcenters 필드에 지정된 데이터 센터 목록과 일치해야 합니다.

문자열

platform:
  vsphere:
    failureDomains:
      topology:
        datastore:

가상 머신 파일, 템플릿 및 ISO 이미지를 보유하는 vSphere 데이터 저장소의 경로입니다.

중요

데이터 저장소 클러스터에 존재하는 모든 데이터 저장소의 경로를 지정할 수 있습니다. 기본적으로 데이터 저장소 클러스터에 대해 스토리지 vMotion이 자동으로 활성화됩니다. Red Hat은 스토리지 vMotion을 지원하지 않으므로 OpenShift Container Platform 클러스터의 데이터 손실 문제를 방지하려면 스토리지 vMotion을 비활성화해야 합니다.

여러 데이터 저장소에서 VM을 지정해야 하는 경우 datastore 오브젝트를 사용하여 클러스터의 install-config.yaml 구성 파일에 실패 도메인을 지정합니다. 자세한 내용은 "VMware vSphere 리전 및 영역 활성화"를 참조하십시오.

문자열

platform:
  vsphere:
    failureDomains:
      topology:
        folder:

선택 사항: 사용자가 가상 머신을 생성하는 기존 폴더의 절대 경로입니다(예: /< datacenter_name>/vm/<folder_name>/<subfolder_name > ).

문자열

platform:
  vsphere:
    failureDomains:
      topology:
        networks:

vCenter 인스턴스에서 구성한 가상 IP 주소 및 DNS 레코드가 포함된 모든 네트워크를 나열합니다.

문자열

platform:
  vsphere:
    failureDomains:
      topology:
        resourcePool:

선택 사항: 설치 프로그램이 가상 머신을 생성하는 기존 리소스 풀의 절대 경로입니다(예: /< datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>/<optional_nested_resource_pool_name > ).

문자열

platform:
  vsphere:
    failureDomains:
      topology
        template:

기존 RHCOS(Red Hat Enterprise Linux CoreOS) 이미지 템플릿 또는 가상 머신의 절대 경로를 지정합니다. 설치 프로그램은 이미지 템플릿 또는 가상 머신을 사용하여 vSphere 호스트에 RHCOS를 빠르게 설치할 수 있습니다. vSphere 호스트에서 RHCOS 이미지를 업로드하는 대신 이 매개변수를 사용하는 것이 좋습니다. 이 매개변수는 설치 관리자 프로비저닝 인프라에서만 사용할 수 있습니다.

문자열

platform:
  vsphere:
    vcenters:

서비스가 vCenter 서버와 통신할 수 있도록 연결 세부 정보를 구성합니다. 현재 단일 vCenter 서버만 지원됩니다.

vCenter 구성 오브젝트의 배열입니다.

platform:
  vsphere:
    vcenters:
      datacenters:

OpenShift Container Platform VM(가상 머신)이 작동하는 데이터센터를 나열하고 정의합니다. 데이터 센터 목록은 failureDomains 필드에 지정된 데이터 센터 목록과 일치해야 합니다.

문자열

platform:
  vsphere:
    vcenters:
      password:

vSphere 사용자와 연결된 암호입니다.

문자열

platform:
  vsphere:
    vcenters:
      port:

vCenter 서버와 통신하는 데 사용되는 포트 번호입니다.

정수

platform:
  vsphere:
    vcenters:
      server:

vCenter 서버의 정규화된 호스트 이름(FQHN) 또는 IP 주소입니다.

문자열

platform:
  vsphere:
    vcenters:
      user:

vSphere 사용자와 연결된 사용자 이름입니다.

문자열

7.1.6. 더 이상 사용되지 않는 VMware vSphere 구성 매개변수

OpenShift Container Platform 4.13에서는 다음 vSphere 구성 매개변수가 더 이상 사용되지 않습니다. 이러한 매개변수를 계속 사용할 수 있지만 설치 프로그램은 install-config.yaml 파일에 이러한 매개변수를 자동으로 지정하지 않습니다.

다음 표에는 더 이상 사용되지 않는 각 vSphere 구성 매개변수가 나열되어 있습니다.

표 7.6. 더 이상 사용되지 않는 VMware vSphere 클러스터 매개변수
매개변수설명
platform:
  vsphere:
    cluster:

OpenShift Container Platform 클러스터를 설치할 vCenter 클러스터입니다.

문자열

platform:
  vsphere:
    datacenter:

OpenShift Container Platform VM(가상 머신)이 작동하는 데이터 센터를 정의합니다.

문자열

platform:
  vsphere:
    defaultDatastore:

프로비저닝 볼륨에 사용할 기본 데이터 저장소의 이름입니다.

문자열

platform:
  vsphere:
    folder:

선택 사항: 설치 프로그램이 가상 머신을 생성하는 기존 폴더의 절대 경로입니다. 이 값을 지정하지 않으면 설치 프로그램은 데이터 센터 가상 머신 폴더에 인프라 ID로 이름이 지정된 폴더를 생성합니다.

문자열(예: /<datacenter_name>/vm/<folder_name>/<subfolder_name>).

platform:
  vsphere:
    password:

vCenter 사용자 이름의 암호입니다.

문자열

platform:
  vsphere:
    resourcePool:

선택 사항: 설치 프로그램이 가상 머신을 생성하는 기존 리소스 풀의 절대 경로입니다. 값을 지정하지 않으면 설치 프로그램은 /< datacenter_name>/host/<cluster_name>/Resources 아래의 클러스터 루트에 리소스를 설치합니다.

문자열(예: /<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>/<optional_nested_resource_pool_name > .

platform:
  vsphere:
    username:

vCenter 인스턴스에 연결하는 데 사용할 사용자 이름입니다. 이 사용자에게는 최소한 vSphere에서 정적 또는 동적 영구 볼륨 프로비저닝 에 필요한 역할과 권한이 있어야 합니다.

문자열

platform:
  vsphere:
    vCenter:

vCenter 서버의 정규화된 호스트 이름 또는 IP 주소입니다.

문자열

7.2. 사용 가능한 에이전트 구성 매개변수

다음 표에서는 에이전트 기반 설치 프로세스의 일부로 설정할 수 있는 필수 및 선택적 에이전트 구성 매개변수를 지정합니다.

이러한 값은 agent-config.yaml 파일에 지정됩니다.

참고

이러한 설정은 설치에만 사용되며 설치 후에는 수정할 수 없습니다.

7.2.1. 필수 구성 매개변수

필수 에이전트 구성 매개변수는 다음 표에 설명되어 있습니다.

표 7.7. 필수 매개 변수
매개변수설명
apiVersion:

agent-config.yaml 콘텐츠의 API 버전입니다. 현재 버전은 v1beta1 입니다. 설치 프로그램에서 이전 API 버전도 지원할 수 있습니다.

문자열

metadata:

Kubernetes 리소스 ObjectMetaname 매개변수만 사용합니다.

개체

metadata:
  name:

클러스터의 이름입니다. 클러스터의 DNS 레코드는 {{.metadata.name}}.{{. baseDomain}} 형식의 모든 하위 도메인입니다. agent-config.yaml 파일에 입력된 값은 무시되며, 대신 install-config.yaml 파일에 지정된 값이 사용됩니다. 예를 들어 ZTP 매니페스트만 사용하는 경우 install-config.yaml 또는 agent-config.yaml 파일을 통해 metadata.name 을 지정하지 않으면 클러스터 이름이 agent-cluster 로 설정됩니다.

소문자 및 하이픈(-)의 문자열(예: dev )입니다.

7.2.2. 선택적 구성 매개변수

선택적 에이전트 구성 매개변수는 다음 표에 설명되어 있습니다.

표 7.8. 선택적 매개변수
매개변수설명
rendezvousIP:

부트스트랩 프로세스를 수행하고 assisted-service 구성 요소를 실행하는 노드의 IP 주소입니다. networkConfig 매개변수에 하나 이상의 호스트의 IP 주소를 지정하지 않는 경우 rendezvous IP 주소를 제공해야 합니다. 이 주소를 제공하지 않으면 제공된 호스트의 networkConfig 에서 하나의 IP 주소가 선택됩니다.

IPv4 또는 IPv6 주소.

bootArtifactsBaseURL:

에이전트 기반 설치 관리자를 사용하여 iPXE 스크립트를 생성할 때 PXE(Preboot Execution Environment) 자산을 업로드할 서버의 URL입니다. 자세한 내용은 "OpenShift Container Platform용 PXE 자산 준비"를 참조하십시오.

문자열.

additionalNTPSources:

다른 수단을 통해 구성된 모든 NTP 소스에 추가되는 모든 클러스터 호스트에 추가할 NTP(Network Time Protocol) 소스 목록입니다.

호스트 이름 또는 IP 주소 목록입니다.

hosts:

호스트 구성. 선택적 호스트 목록입니다. 정의된 호스트 수는 compute.replicascontrolPlane.replicas 매개변수 값의 합계인 install-config.yaml 파일에 정의된 총 호스트 수를 초과해서는 안 됩니다.

호스트 구성 오브젝트의 배열입니다.

hosts:
  hostname:

호스트 이름. DHCP(Dynamic Host Configuration Protocol) 또는 역방향 DNS 조회에서 가져온 호스트 이름을 재정의합니다. 이 매개 변수를 통해 호스트 이름을 구성하는 것은 선택 사항이지만 각 호스트에는 이러한 방법 중 하나에서 제공하는 고유한 호스트 이름이 있어야 합니다.

문자열.

hosts:
  interfaces:

호스트의 인터페이스에 대한 이름 및 MAC 주소 매핑 테이블을 제공합니다. NetworkConfig 섹션이 agent-config.yaml 파일에 제공된 경우 이 테이블을 포함해야 하며 값이 NetworkConfig 섹션에 제공된 매핑과 일치해야 합니다.

호스트 구성 오브젝트의 배열입니다.

hosts:
  interfaces:
    name:

호스트의 인터페이스 이름입니다.

문자열.

hosts:
  interfaces:
    macAddress:

호스트에 있는 인터페이스의 MAC 주소입니다.

다음 예와 같은 MAC 주소: 00-B0-D0-63-C2-26.

hosts:
  role:

호스트가 마스터 또는 작업자 노드인지 여부를 정의합니다. agent-config.yaml 파일에 역할이 정의되어 있지 않으면 클러스터 설치 중에 역할이 무작위로 할당됩니다.

마스터 또는 작업자.

hosts:
  rootDeviceHints:

특정 장치에 대한 RHCOS(Red Hat Enterprise Linux CoreOS) 이미지의 프로비저닝을 활성화합니다. 설치 프로그램은 장치를 검색한 순서대로 검사하고 검색된 값을 팁과 비교합니다. 힌트 값과 일치하는 첫 번째 검색된 장치를 사용합니다. 이 장치는 설치 중에 운영 체제가 작성된 장치입니다.

키-값 쌍으로 이루어진 사전입니다. 자세한 내용은 "OpenShift 설치를 위한 환경 설정" 페이지의 "루트 장치 팁"을 참조하십시오.

hosts:
  rootDeviceHints:
    deviceName:

RHCOS 이미지가 프로비저닝되는 장치의 이름입니다.

문자열.

hosts:
  networkConfig:

호스트 네트워크 정의입니다. 구성은 nmstate 설명서에 정의된 Host Network Management API와 일치해야 합니다.

호스트 네트워크 구성 오브젝트로 이루어진 사전입니다.

Legal Notice

Copyright © 2024 Red Hat, Inc.

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.