16.4. 단일 노드 OpenShift 클러스터 배포


16.4.1. 관리형 단일 노드 OpenShift에 대한 이미지 기반 배포 정보

이미지 기반 설치를 사용하여 단일 노드 OpenShift가 사전 설치된 호스트가 원격 사이트에 도착하면 기술자는 몇 분 만에 호스트를 쉽게 재구성하고 배포할 수 있습니다.

허브 앤 스포크 아키텍처를 사용하는 클러스터의 경우 사전 설치된 호스트의 배포를 완료하려면 먼저 각 호스트에 대한 허브 클러스터에서 사이트별 구성 리소스를 정의해야 합니다. 이러한 리소스에는 베어 메탈 호스트 속성, 인증 세부 정보, 기타 배포 및 네트워킹 정보와 같은 구성 정보가 포함되어 있습니다.

IBI(이미지 기반 설치) 운영자는 이러한 리소스에서 구성 ISO를 생성한 다음 구성 ISO가 첨부된 호스트를 부팅합니다. 호스트는 구성 ISO를 마운트하고 재구성 프로세스를 실행합니다. 재구성이 완료되면 단일 노드 OpenShift 클러스터가 준비됩니다.

참고

각 베어 메탈 호스트에 대해 별도의 구성 리소스를 만들어야 합니다.

허브 앤 스포크 아키텍처를 사용하는 클러스터에 사전 설치된 호스트를 배포하려면 다음의 고급 단계를 참조하세요.

  1. 허브 클러스터에 IBI Operator를 설치합니다.
  2. 각 호스트의 허브 클러스터에서 사이트별 구성 리소스를 만듭니다.
  3. IBI 운영자는 이러한 리소스에서 구성 ISO를 생성하고 구성 ISO가 첨부된 대상 호스트를 부팅합니다.
  4. 호스트는 구성 ISO를 마운트하고 재구성 프로세스를 실행합니다. 재구성이 완료되면 단일 노드 OpenShift 클러스터가 준비됩니다.
참고

또는 허브 클러스터를 사용하지 않고 클러스터에 사전 설치된 호스트를 수동으로 배포할 수 있습니다. ImageBasedConfig 리소스와 설치 매니페스트를 정의하고 이를 openshift-install 설치 프로그램에 입력으로 제공해야 합니다. 자세한 내용은 " openshift-install 프로그램을 사용하여 단일 노드 OpenShift 클러스터 배포"를 참조하세요.

16.4.1.1. 이미지 기반 설치 운영자 설치

이미지 기반 설치(IBI) 연산자는 베어 메탈 호스트에 사전 설치된 단일 노드 OpenShift에 대한 이미지 기반 배포 워크플로의 일부입니다.

참고

IBI Operator는 MCE 버전 2.7의 Kubernetes Operator용 멀티클러스터 엔진의 일부입니다.

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 로그인했습니다.
  • Red Hat Advanced Cluster Management(RHACM) 허브 클러스터를 배포했거나 Kubernetes Operator에 대한 멀티클러스터 엔진을 배포했습니다.
  • "이미지 기반 설치를 위한 소프트웨어 필수 구성 요소" 섹션에서 소프트웨어 구성 요소의 필수 버전을 검토했습니다.

프로세스

  • 다음 명령을 실행하여 MultiClusterEngine 리소스의 image-based-install-operator 구성 요소에 대한 활성화된 사양을 true 로 설정합니다.

    $ oc patch multiclusterengines.multicluster.openshift.io multiclusterengine --type json \
    --patch '[{"op": "add", "path":"/spec/overrides/components/-", "value": {"name":"image-based-install-operator","enabled": true}}]'
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 실행하여 Image Based Install Operator Pod가 실행 중인지 확인하세요.

    $ oc get pods -A | grep image-based
    Copy to Clipboard Toggle word wrap

    출력 예

    multicluster-engine             image-based-install-operator-57fb8sc423-bxdj8             2/2     Running     0               5m
    Copy to Clipboard Toggle word wrap

사전 설치된 호스트의 이미지 기반 배포를 시작하려면 허브 클러스터에서 사이트별 구성 리소스를 만듭니다.

허브 클러스터에서 이러한 구성 리소스를 생성하면 이미지 기반 설치(IBI) 운영자가 구성 ISO를 생성하고 대상 호스트에 연결하여 사이트별 구성 프로세스를 시작합니다. 구성 프로세스가 완료되면 단일 노드 OpenShift 클러스터가 준비됩니다.

참고

허브 클러스터에서 구성해야 하는 구성 리소스에 대한 자세한 내용은 "사전 설치된 호스트 배포를 위한 클러스터 구성 리소스"를 참조하세요.

사전 요구 사항

  • 이미지 기반 설치를 사용하여 단일 노드 OpenShift가 있는 호스트를 사전 설치했습니다.
  • cluster-admin 권한이 있는 사용자로 로그인했습니다.
  • Red Hat Advanced Cluster Management(RHACM) 허브 클러스터를 배포했거나 Kubernetes 운영자(MCE)용 멀티클러스터 엔진을 배포했습니다.
  • 허브 클러스터에 IBI Operator를 설치했습니다.
  • 풀 리퀘스트를 인증하기 위해 풀 시크릿을 생성했습니다. 자세한 내용은 "이미지 풀 시크릿 사용"을 참조하세요.

프로세스

  1. 다음 명령을 실행하여 ibi-ns 네임스페이스를 만듭니다.

    $ oc create namespace ibi-ns
    Copy to Clipboard Toggle word wrap
  2. 이미지 레지스트리에 대한 Secret 리소스를 생성합니다.

    1. 이미지 레지스트리의 비밀 리소스를 정의하는 YAML 파일을 만듭니다.

      secret-image-registry.yaml 파일 예시

      apiVersion: v1
      kind: Secret
      metadata:
        name: ibi-image-pull-secret
        namespace: ibi-ns
      stringData:
        .dockerconfigjson: <base64-docker-auth-code> 
      1
      
      type: kubernetes.io/dockerconfigjson
      Copy to Clipboard Toggle word wrap

      1
      base64로 인코딩된 자격 증명 세부 정보를 제공해야 합니다. 이미지 풀 시크릿 사용에 대한 자세한 내용은 "추가 리소스" 섹션을 참조하세요.
    2. 다음 명령을 실행하여 이미지 레지스트리에 대한 비밀 리소스를 만듭니다.

      $ oc create -f secret-image-registry.yaml
      Copy to Clipboard Toggle word wrap
  3. 선택 사항: 호스트에 대한 정적 네트워킹을 구성합니다.

    1. nmstate 형식으로 정적 네트워크 구성을 포함하는 비밀 리소스를 만듭니다.

      host-network-config-secret.yaml 파일 예시

      apiVersion: v1
      kind: Secret
      metadata:
       name: host-network-config-secret 
      1
      
       namespace: ibi-ns
      type: Opaque
      stringData:
       nmstate: | 
      2
      
        interfaces:
          - name: ens1f0 
      3
      
            type: ethernet
            state: up
            ipv4:
              enabled: true
              address:
                - ip: 192.168.200.25
                  prefix-length: 24
              dhcp: false 
      4
      
            ipv6:
              enabled: false
        dns-resolver:
          config:
            server:
              - 192.168.15.47 
      5
      
              - 192.168.15.48
        routes:
          config: 
      6
      
            - destination: 0.0.0.0/0
              metric: 150
              next-hop-address: 192.168.200.254
              next-hop-interface: ens1f0
              table-id: 254
      Copy to Clipboard Toggle word wrap

      1
      비밀 리소스의 이름을 지정합니다.
      2
      nmstate 형식으로 정적 네트워크 구성을 정의합니다.
      3
      호스트의 인터페이스 이름을 지정합니다. 인터페이스 이름은 운영 체제에 표시되는 실제 NIC 이름과 일치해야 합니다. NIC 매칭에 MAC 주소를 사용하려면 식별자 필드를 mac-address 로 설정합니다.
      4
      nmstate가 인터페이스에 정적 IP 주소를 할당하도록 하려면 dhcp: false를 지정해야 합니다.
      5
      시스템이 도메인 이름을 확인하는 데 사용할 하나 이상의 DNS 서버를 지정합니다.
      6
      이 예에서 기본 경로는 ens1f0 인터페이스를 통해 다음 홉 IP 주소 192.168.200.254 로 구성됩니다.
  4. BareMetalHostSecret 리소스를 만듭니다.

    1. BareMetalHostSecret 리소스를 정의하는 YAML 파일을 만듭니다.

      ibi-bmh.yaml 파일 예시

      apiVersion: metal3.io/v1alpha1
      kind: BareMetalHost
      metadata:
        name: ibi-bmh 
      1
      
        namespace: ibi-ns
      spec:
        online: false 
      2
      
        bootMACAddress: 00:a5:12:55:62:64 
      3
      
        bmc:
          address: redfish-virtualmedia+http://192.168.111.1:8000/redfish/v1/Systems/8a5babac-94d0-4c20-b282-50dc3a0a32b5 
      4
      
          credentialsName: ibi-bmh-bmc-secret 
      5
      
        preprovisioningNetworkDataName: host-network-config-secret 
      6
      
        automatedCleaningMode: disabled 
      7
      
        externallyProvisioned: true 
      8
      
      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: ibi-bmh-secret 
      9
      
        namespace: ibi-ns
      type: Opaque
      data:
        username: <user_name> 
      10
      
        password: <password> 
      11
      Copy to Clipboard Toggle word wrap

      1
      BareMetalHost 리소스의 이름을 지정합니다.
      2
      호스트가 온라인이어야 하는지 여부를 지정합니다.
      3
      호스트 부팅 MAC 주소를 지정합니다.
      4
      BMC 주소를 지정하세요. 예를 들어 redfish-virtualmedia 및 idrac-virtualmedia와 같이 가상 미디어 네트워킹 부팅을 지원하는 베어 메탈 호스트 드라이버만 사용할 수 있습니다.
      5
      베어 메탈 호스트 Secret 리소스의 이름을 지정합니다.
      6
      선택 사항: 호스트에 대한 정적 네트워크 구성이 필요한 경우 구성이 포함된 비밀 리소스의 이름을 지정합니다.
      7
      디스크 검사 중에 프로비저닝 서비스가 시드 이미지와 같은 모든 사전 설치 아티팩트를 삭제하지 못하도록 하려면 automatedCleaningMode:disabled를 지정해야 합니다.
      8
      호스트가 구성 ISO 대신 사전 설치된 디스크에서 부팅할 수 있도록 하려면 externallyProvisioned: true를 지정해야 합니다.
      9
      비밀 리소스의 이름을 지정합니다.
      10
      사용자 이름을 지정하세요.
      11
      비밀번호를 입력하세요.
    2. 다음 명령을 실행하여 BareMetalHostSecret 리소스를 만듭니다.

      $ oc create -f ibi-bmh.yaml
      Copy to Clipboard Toggle word wrap
  5. ClusterImageSet 리소스를 만듭니다.

    1. ClusterImageSet 리소스를 정의하는 YAML 파일을 만듭니다.

      ibi-cluster-image-set.yaml 파일 예시

      apiVersion: hive.openshift.io/v1
      kind: ClusterImageSet
      metadata:
        name: ibi-img-version-arch 
      1
      
      spec:
        releaseImage: ibi.example.com:path/to/release/images:version-arch 
      2
      Copy to Clipboard Toggle word wrap

      1
      ClusterImageSet 리소스의 이름을 지정합니다.
      2
      배포에 사용할 릴리스 이미지의 주소를 지정합니다. 시드 이미지 생성 중에 사용된 이미지 레지스트리와 다른 이미지 레지스트리를 사용하는 경우 릴리스 이미지의 OpenShift Container Platform 버전이 동일하게 유지되는지 확인하세요.
    2. 다음 명령을 실행하여 ClusterImageSet 리소스를 만듭니다.

      $ oc apply -f ibi-cluster-image-set.yaml
      Copy to Clipboard Toggle word wrap
  6. ImageClusterInstall 리소스를 만듭니다.

    1. ImageClusterInstall 리소스를 정의하는 YAML 파일을 만듭니다.

      ibi-image-cluster-install.yaml 파일 예시

      apiVersion: extensions.hive.openshift.io/v1alpha1
      kind: ImageClusterInstall
      metadata:
        name: ibi-image-install 
      1
      
        namespace: ibi-ns
      spec:
        bareMetalHostRef:
          name: ibi-bmh 
      2
      
          namespace: ibi-ns
        clusterDeploymentRef:
          name: ibi-cluster-deployment 
      3
      
        hostname: ibi-host 
      4
      
        imageSetRef:
          name: ibi-img-version-arch 
      5
      
        machineNetwork: 10.0.0.0/24 
      6
      
        proxy: 
      7
      
          httpProxy: "http://proxy.example.com:8080"
          #httpsProxy: "http://proxy.example.com:8080"
          #noProxy: "no_proxy.example.com"
      Copy to Clipboard Toggle word wrap

      1
      ImageClusterInstall 리소스의 이름을 지정합니다.
      2
      이미지 기반 설치의 대상으로 지정할 BareMetalHost 리소스를 지정합니다.
      3
      대상 호스트의 이미지 기반 설치에 사용할 ClusterDeployment 리소스의 이름을 지정합니다.
      4
      클러스터의 호스트 이름을 지정합니다.
      5
      배포에 사용할 컨테이너 릴리스 이미지를 정의하는 데 사용된 ClusterImageSet 리소스의 이름을 지정합니다.
      6
      외부 네트워크의 공개 CIDR(Classless Inter-Domain Routing)을 지정합니다.
      7
      선택 사항: 클러스터 배포에 사용할 프록시를 지정합니다.
      중요

      클러스터 배포에 프록시 구성이 필요한 경우 다음을 수행해야 합니다.

      • 프록시 구성을 특징으로 하는 시드 클러스터에서 시드 이미지를 만듭니다. 프록시 구성이 일치할 필요는 없습니다.
      • 설치 매니페스트에서 machineNetwork 필드를 구성합니다.
    2. 다음 명령을 실행하여 ImageClusterInstall 리소스를 만듭니다.

      $ oc create -f ibi-image-cluster-install.yaml
      Copy to Clipboard Toggle word wrap
  7. ClusterDeployment 리소스를 만듭니다.

    1. ClusterDeployment 리소스를 정의하는 YAML 파일을 만듭니다.

      ibi-cluster-deployment.yaml 파일 예시

      apiVersion: hive.openshift.io/v1
      kind: ClusterDeployment
      metadata:
        name: ibi-cluster-deployment 
      1
      
        namespace: ibi-ns 
      2
      
      spec:
        baseDomain: example.com 
      3
      
        clusterInstallRef:
          group: extensions.hive.openshift.io
          kind: ImageClusterInstall
          name: ibi-image-install 
      4
      
          version: v1alpha1
        clusterName: ibi-cluster 
      5
      
        platform:
          none: {}
        pullSecretRef:
          name: ibi-image-pull-secret 
      6
      Copy to Clipboard Toggle word wrap

      1
      ClusterDeployment 리소스의 이름을 지정합니다.
      2
      ClusterDeployment 리소스에 대한 네임스페이스를 지정합니다.
      3
      클러스터가 속해야 하는 기본 도메인을 지정합니다.
      4
      대상 호스트의 이미지 기반 설치에 사용할 컨테이너 이미지를 정의한 ImageClusterInstall 의 이름을 지정합니다.
      5
      클러스터의 이름을 지정합니다.
      6
      이미지 레지스트리에서 이미지를 가져올 때 사용할 비밀번호를 지정합니다.
    2. 다음 명령을 실행하여 ClusterDeployment 리소스를 만듭니다.

      $ oc apply -f ibi-cluster-deployment.yaml
      Copy to Clipboard Toggle word wrap
  8. ManagedCluster 리소스를 만듭니다.

    1. ManagedCluster 리소스를 정의하는 YAML 파일을 만듭니다.

      ibi-managed.yaml 파일 예시

      apiVersion: cluster.open-cluster-management.io/v1
      kind: ManagedCluster
      metadata:
        name: sno-ibi 
      1
      
      spec:
        hubAcceptsClient: true 
      2
      Copy to Clipboard Toggle word wrap

      1
      ManagedCluster 리소스의 이름을 지정합니다.
      2
      RHACM이 클러스터를 관리할 수 있도록 하려면 true를 지정합니다.
    2. 다음 명령을 실행하여 ManagedCluster 리소스를 만듭니다.

      $ oc apply -f ibi-managed.yaml
      Copy to Clipboard Toggle word wrap

검증

  1. 다음 명령을 실행하여 허브 클러스터의 ImageClusterInstall 상태를 확인하고 대상 호스트 설치 진행 상황을 모니터링합니다.

    $ oc get imageclusterinstall
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME       REQUIREMENTSMET           COMPLETED                     BAREMETALHOSTREF
    target-0   HostValidationSucceeded   ClusterInstallationSucceeded  ibi-bmh
    Copy to Clipboard Toggle word wrap

    주의

    ImageClusterInstall 리소스가 삭제되면 IBI Operator는 BareMetalHost 리소스를 다시 연결하고 머신을 재부팅합니다.

  2. 설치가 완료되면 다음 명령을 실행하여 관리되는 클러스터에 로그인하기 위한 kubeconfig 비밀번호를 검색할 수 있습니다.

    $ oc extract secret/<cluster_name>-admin-kubeconfig -n <cluster_namespace>  --to - > <directory>/<cluster_name>-kubeconfig
    Copy to Clipboard Toggle word wrap
    • <cluster_name> 은 클러스터의 이름입니다.
    • <cluster_namespace> 는 클러스터의 네임스페이스입니다.
    • <directory>는 파일을 생성할 디렉터리입니다.
16.4.1.2.1. 사전 설치된 호스트를 배포하기 위한 클러스터 구성 리소스

원격 사이트에 사전 설치된 호스트에 대한 배포를 완료하려면 각 베어 메탈 호스트의 허브 클러스터에서 다음과 같은 사이트별 클러스터 구성 리소스를 구성해야 합니다.

Expand
표 16.6. 클러스터 구성 리소스 참조
리소스설명

네임스페이스

관리되는 단일 노드 OpenShift 클러스터에 대한 네임스페이스입니다.

BareMetalHost

물리적 호스트와 해당 속성(프로비저닝 및 하드웨어 구성 등)을 설명합니다.

베어메탈 호스트에 대한 비밀

호스트 BMC에 대한 자격 증명.

베어메탈 호스트 정적 네트워크 구성을 위한 비밀

선택 사항: 대상 호스트에 대한 정적 네트워크 구성을 설명합니다.

이미지 레지스트리의 비밀

이미지 레지스트리에 대한 자격 증명. 이미지 레지스트리의 비밀은 kubernetes.io/dockerconfigjson 유형이어야 합니다.

ImageClusterInstall

베어 메탈 호스트, 배포 및 이미지 세트 리소스를 참조합니다.

ClusterImageSet

클러스터에 사용할 릴리스 이미지를 설명합니다.

ClusterDeployment

네트워킹, 인증 및 플랫폼별 설정을 설명합니다.

ManagedCluster

Red Hat Advanced Cluster Management(RHACM)가 등록하고 관리할 수 있도록 클러스터 세부 정보를 설명합니다.

ConfigMap

선택 사항: 클러스터 서비스에 대한 신뢰할 수 있는 통신을 보장하기 위해 호스트에 대한 신뢰할 수 있는 인증서 번들을 추가하는 등 클러스터 배포에 대한 추가 구성을 설명합니다.

16.4.1.2.2. ImageClusterInstall 리소스 API 사양

다음 콘텐츠는 ImageClusterInstall 리소스의 API 사양을 설명합니다. 이 리소스는 이미지 기반 설치 운영자의 엔드포인트입니다.

Expand
표 16.7. 필수 사양
사양유형설명

imageSetRef

string

배포에 대한 릴리스 이미지를 정의하는 ClusterImageSet 리소스의 이름을 지정합니다.

hostname

string

클러스터의 호스트 이름을 지정합니다.

sshKey

string

대상 호스트에 SSH 액세스를 제공하려면 SSH 키를 지정하세요.

Expand
표 16.8. 선택 사양
사양유형설명

clusterDeploymentRef

string

대상 호스트의 이미지 기반 설치에 사용할 ClusterDeployment 리소스의 이름을 지정합니다.

clusterMetadata

string

배포가 완료되면 이 사양에는 클러스터에 대한 메타데이터 정보가 자동으로 채워집니다. 여기에는 클러스터에 로그인하기 위한 cluster-admin kubeconfig 자격 증명이 포함됩니다.

imageDigestSources

string

릴리스 이미지 콘텐츠에 대한 소스 또는 저장소를 지정합니다(예:

imageDigestSources:
  - mirrors:
      - "registry.example.com:5000/ocp4/openshift4"
    source: "quay.io/openshift-release-dev/ocp-release"
Copy to Clipboard Toggle word wrap

extraManifestsRefs

string

대상 클러스터에 적용할 추가 매니페스트를 포함하는 ConfigMap 리소스를 지정합니다.

bareMetalHostRef

string

클러스터 배포에 사용할 bareMetalHost 리소스 지정

machineNetwork

string

외부 네트워크의 공개 CIDR(Classless Inter-Domain Routing)을 지정합니다.

proxy

string

클러스터에 대한 프록시 설정을 지정합니다(예:

proxy:
  httpProxy: "http://proxy.example.com:8080"
  httpsProxy: "http://proxy.example.com:8080"
  noProxy: "no_proxy.example.com"
Copy to Clipboard Toggle word wrap

caBundleRef

string

호스트에 대한 신뢰할 수 있는 인증서의 새 번들을 포함하는 ConfigMap 리소스를 지정합니다.

16.4.1.3. 추가 매니페스트에 대한 ConfigMap 리소스

관리형 단일 노드 OpenShift 클러스터에 대한 이미지 기반 배포에서 추가 매니페스트를 정의하기 위해 ConfigMap 리소스를 선택적으로 만들 수 있습니다.

ConfigMap 리소스를 만든 후 ImageClusterInstall 리소스에서 해당 리소스를 참조하세요. 배포 중에 IBI 운영자는 배포에 추가 매니페스트를 포함시킵니다.

ConfigMap 리소스를 사용하여 단일 노드 OpenShift 클러스터의 이미지 기반 배포에 추가 매니페스트를 추가할 수 있습니다.

다음 예제에서는 배포에 단일 루트 I/O 가상화(SR-IOV) 네트워크를 추가합니다.

참고

추가 매니페스트의 파일 이름은 30자를 초과해서는 안 됩니다. 파일 이름이 길면 배포에 실패할 수 있습니다.

사전 요구 사항

  • 이미지 기반 설치를 사용하여 단일 노드 OpenShift가 있는 호스트를 사전 설치했습니다.
  • cluster-admin 권한이 있는 사용자로 로그인했습니다.

프로세스

  1. SriovNetworkNodePolicySriovNetwork 리소스를 생성합니다.

    1. 리소스를 정의하는 YAML 파일을 생성합니다.

      sriov-extra-manifest.yaml 파일의 예

      apiVersion: sriovnetwork.openshift.io/v1
      kind: SriovNetworkNodePolicy
      metadata:
        name: "example-sriov-node-policy"
        namespace: openshift-sriov-network-operator
      spec:
        deviceType: vfio-pci
        isRdma: false
        nicSelector:
          pfNames: [ens1f0]
        nodeSelector:
          node-role.kubernetes.io/master: ""
        mtu: 1500
        numVfs: 8
        priority: 99
        resourceName: example-sriov-node-policy
      ---
      apiVersion: sriovnetwork.openshift.io/v1
      kind: SriovNetwork
      metadata:
        name: "example-sriov-network"
        namespace: openshift-sriov-network-operator
      spec:
        ipam: |-
          {
          }
        linkState: auto
        networkNamespace: sriov-namespace
        resourceName: example-sriov-node-policy
        spoofChk: "on"
        trust: "off"
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 ConfigMap 리소스를 생성합니다.

      $ oc create configmap sr-iov-extra-manifest --from-file=sriov-extra-manifest.yaml -n ibi-ns 
      1
      Copy to Clipboard Toggle word wrap
      1
      ImageClusterInstall 리소스가 있는 네임스페이스를 지정합니다.

      출력 예

      configmap/sr-iov-extra-manifest created
      Copy to Clipboard Toggle word wrap

      참고

      둘 이상의 추가 매니페스트를 추가하고 매니페스트를 특정 순서로 적용해야 하는 경우 매니페스트 파일 이름 앞에 필요한 순서를 나타내는 숫자로 붙여야 합니다. 예를 들면 00-namespace.yaml,01-sriov-extra-manifest.yaml 등입니다.

  2. ImageClusterInstall 리소스의 spec.extraManifestsRefs 필드에서 ConfigMap 리소스를 참조합니다.

    #...
      spec:
        extraManifestsRefs:
        - name: sr-iov-extra-manifest
    #...
    Copy to Clipboard Toggle word wrap
16.4.1.3.2. 이미지 기반 배포에 CA 번들을 추가하는 ConfigMap 리소스 생성

ConfigMap 리소스를 사용하여 호스트에 CA(인증 기관) 번들을 추가하여 클러스터 서비스에 대한 신뢰할 수 있는 통신을 보장할 수 있습니다.

ConfigMap 리소스를 생성한 후 ImageClusterInstall 리소스의 spec.caBundleRef 필드에서 참조합니다.

사전 요구 사항

  • 이미지 기반 설치를 사용하여 단일 노드 OpenShift로 호스트를 사전 설치했습니다.
  • cluster-admin 권한이 있는 사용자로 로그인했습니다.

프로세스

  1. tls-ca-bundle.pem 이라는 CA 번들 파일을 만듭니다.

    tls-ca-bundle.pem 파일 예시

    -----BEGIN CERTIFICATE-----
    MIIDXTCCAkWgAwIBAgIJAKmjYKJbIyz3MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
    ...Custom CA certificate bundle...
    4WPl0Qb27Sb1xZyAsy1ww6MYb98EovazUSfjYr2EVF6ThcAPu4/sMxUV7He2J6Jd
    cA8SMRwpUbz3LXY=
    -----END CERTIFICATE-----
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 ConfigMap 객체를 만듭니다.

    $ oc create configmap custom-ca --from-file=tls-ca-bundle.pem -n ibi-ns
    Copy to Clipboard Toggle word wrap
    • custom-ca는 ConfigMap 리소스의 이름을 지정합니다.
    • tls-ca-bundle.pem은 ConfigMap 리소스의 데이터 입력에 대한 키를 정의합니다. tls-ca-bundle.pem 키에 데이터 항목을 포함해야 합니다.
    • ibi-ns는 ImageClusterInstall 리소스가 있는 네임스페이스를 지정합니다.

      출력 예

      configmap/custom-ca created
      Copy to Clipboard Toggle word wrap

  3. ImageClusterInstall 리소스의 spec.caBundleRef 필드에서 ConfigMap 리소스를 참조하세요.

    #...
      spec:
        caBundleRef:
          name: custom-ca
    #...
    Copy to Clipboard Toggle word wrap

16.4.2. 단일 노드 OpenShift에 대한 이미지 기반 배포에 관하여

openshift-install 프로그램을 사용하여 구성 ISO를 수동으로 생성할 수 있습니다. 배포를 완료하려면 사전 설치된 대상 호스트에 구성 ISO를 첨부하세요.

openshift-install 프로그램을 사용하면 이미지 기반 설치로 사전 설치한 호스트를 구성하고 배포할 수 있습니다. 사이트별 세부 정보로 대상 호스트를 구성하려면 다음 리소스를 만들어야 합니다.

  • install-config.yaml 설치 매니페스트
  • image-based-config.yaml 매니페스트

openshift-install 프로그램은 이러한 리소스를 사용하여 사전 설치된 대상 호스트에 첨부하여 배포를 완료하는 구성 ISO를 생성합니다.

참고

image-based-config.yaml 매니페스트 사양에 대한 자세한 내용은 "image-based-config.yaml 매니페스트에 대한 참조 사양"을 참조하세요.

사전 요구 사항

  • 이미지 기반 설치를 사용하여 단일 노드 OpenShift가 있는 호스트를 사전 설치했습니다.
  • openshift-install 프로그램의 최신 버전을 다운로드했습니다.
  • 풀 리퀘스트를 인증하기 위해 풀 시크릿을 생성했습니다. 자세한 내용은 "이미지 풀 시크릿 사용"을 참조하세요.

프로세스

  1. 다음을 실행하여 작업 디렉토리를 만듭니다.

    $ mkdir ibi-config-iso-workdir 
    1
    Copy to Clipboard Toggle word wrap
    1
    ibi-config-iso-workdir을 작업 디렉토리의 이름으로 바꾸세요.
  2. 설치 매니페스트를 만듭니다.

    1. install-config 매니페스트를 정의하는 YAML 파일을 만듭니다.

      install-config.yaml 파일 예시

      apiVersion: v1
      metadata:
        name: sno-cluster-name
      baseDomain: host.example.com
      compute:
        - architecture: amd64
          hyperthreading: Enabled
          name: worker
          replicas: 0
      controlPlane:
        architecture: amd64
        hyperthreading: Enabled
        name: master
        replicas: 1
      networking:
        machineNetwork:
        - cidr: 192.168.200.0/24
      platform:
        none: {}
      fips: false
      cpuPartitioningMode: "AllNodes"
      pullSecret: '{"auths":{"<your_pull_secret>"}}}'
      sshKey: 'ssh-rsa <your_ssh_pub_key>'
      Copy to Clipboard Toggle word wrap

      중요

      클러스터 배포에 프록시 구성이 필요한 경우 다음을 수행해야 합니다.

      • 프록시 구성을 특징으로 하는 시드 클러스터에서 시드 이미지를 만듭니다. 프록시 구성이 일치할 필요는 없습니다.
      • 설치 매니페스트에서 machineNetwork 필드를 구성합니다.
    2. 작업 디렉토리에 파일을 저장합니다.
  3. 선택 사항입니다. 다음 명령을 실행하여 작업 디렉토리에 구성 템플릿을 만듭니다.

    $ openshift-install image-based create config-template --dir ibi-config-iso-workdir/
    Copy to Clipboard Toggle word wrap

    출력 예

    INFO Config-Template created in: ibi-config-iso-workdir
    Copy to Clipboard Toggle word wrap

    이 명령은 작업 디렉토리에 image-based-config.yaml 구성 템플릿을 생성합니다.

    #
    # Note: This is a sample ImageBasedConfig file showing
    # which fields are available to aid you in creating your
    # own image-based-config.yaml file.
    #
    apiVersion: v1beta1
    kind: ImageBasedConfig
    metadata:
      name: example-image-based-config
    additionalNTPSources:
      - 0.rhel.pool.ntp.org
      - 1.rhel.pool.ntp.org
    hostname: change-to-hostname
    releaseRegistry: quay.io
    # networkConfig contains the network configuration for the host in NMState format.
    # See https://nmstate.io/examples.html for examples.
    networkConfig:
      interfaces:
        - name: eth0
          type: ethernet
          state: up
          mac-address: 00:00:00:00:00:00
          ipv4:
            enabled: true
            address:
              - ip: 192.168.122.2
                prefix-length: 23
            dhcp: false
    Copy to Clipboard Toggle word wrap
  4. 구성 파일을 편집하세요.

    image-based-config.yaml 파일 예시

    #
    # Note: This is a sample ImageBasedConfig file showing
    # which fields are available to aid you in creating your
    # own image-based-config.yaml file.
    #
    apiVersion: v1beta1
    kind: ImageBasedConfig
    metadata:
      name: sno-cluster-name
    additionalNTPSources:
      - 0.rhel.pool.ntp.org
      - 1.rhel.pool.ntp.org
    hostname: host.example.com
    releaseRegistry: quay.io
    # networkConfig contains the network configuration for the host in NMState format.
    # See https://nmstate.io/examples.html for examples.
    networkConfig:
        interfaces:
          - name: ens1f0
            type: ethernet
            state: up
            ipv4:
              enabled: true
              dhcp: false
              auto-dns: false
              address:
                - ip: 192.168.200.25
                  prefix-length: 24
            ipv6:
              enabled: false
        dns-resolver:
          config:
            server:
              - 192.168.15.47
              - 192.168.15.48
        routes:
          config:
          - destination: 0.0.0.0/0
            metric: 150
            next-hop-address: 192.168.200.254
            next-hop-interface: ens1f0
    Copy to Clipboard Toggle word wrap

  5. 다음 명령을 실행하여 작업 디렉토리에 구성 ISO를 만듭니다.

    $ openshift-install image-based create config-image --dir ibi-config-iso-workdir/
    Copy to Clipboard Toggle word wrap

    출력 예

    INFO Adding NMConnection file <ens1f0.nmconnection>
    INFO Consuming Install Config from target directory
    INFO Consuming Image-based Config ISO configuration from target directory
    INFO Config-Image created in: ibi-config-iso-workdir/auth
    Copy to Clipboard Toggle word wrap

    작업 디렉토리에서 출력을 확인하세요.

    출력 예

    ibi-config-iso-workdir/
    ├── auth
    │   ├── kubeadmin-password
    │   └── kubeconfig
    └── imagebasedconfig.iso
    Copy to Clipboard Toggle word wrap

  6. 원하는 방법을 사용하여 imagebasedconfig.iso 를 사전 설치된 호스트에 연결하고 호스트를 다시 시작하여 구성 프로세스를 완료하고 클러스터를 배포합니다.

검증

호스트에서 구성 프로세스가 완료되면 클러스터에 액세스하여 상태를 확인합니다.

  1. 다음 명령을 실행하여 kubeconfig 환경 변수를 kubeconfig 파일에 내보냅니다.

    $ export KUBECONFIG=ibi-config-iso-workdir/auth/kubeconfig
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 클러스터가 응답하는지 확인하세요.

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                                         STATUS   ROLES                  AGE     VERSION
    node/sno-cluster-name.host.example.com       Ready    control-plane,master   5h15m   v1.32.3
    Copy to Clipboard Toggle word wrap

16.4.2.1.1. image-based-config.yaml 매니페스트에 대한 참조 사양

다음 내용은 image-based-config.yaml 매니페스트에 대한 사양을 설명합니다.

openshift-install 프로그램은 image-based-config.yaml 매니페스트를 사용하여 단일 노드 OpenShift의 이미지 기반 배포를 위한 사이트별 구성 ISO를 만듭니다.

Expand
표 16.9. 필수 사양
사양유형설명

hostname

string

단일 노드 OpenShift 클러스터의 노드 이름을 정의합니다.

Expand
표 16.10. 선택 사양
사양유형설명

networkConfig

string

호스트에 대한 네트워킹 구성을 지정합니다(예:

networkConfig:
    interfaces:
      - name: ens1f0
        type: ethernet
        state: up
        ...
Copy to Clipboard Toggle word wrap

정적 네트워킹이 필요한 경우 라이브 설치 ISO를 만드는 호스트에 nmstatectl 라이브러리를 설치해야 합니다. nmstate를 사용하여 네트워크 구성을 정의하는 방법에 대한 자세한 내용은 nmstate.io를 참조하세요.

중요

인터페이스 이름은 운영 체제에 표시되는 실제 NIC 이름과 일치해야 합니다.

additionalNTPSources

string

모든 클러스터 호스트의 NTP 소스 목록을 지정합니다. 이러한 NTP 소스는 클러스터의 기존 NTP 소스에 추가됩니다. NTP 소스에 호스트 이름이나 IP 주소를 사용할 수 있습니다.

releaseRegistry

string

시드 클러스터의 릴리스 이미지에 사용한 컨테이너 이미지 레지스트리를 지정합니다.

nodeLabels

map[string]string

단일 노드 OpenShift 노드에 대한 사용자 정의 노드 레이블을 지정합니다(예:

nodeLabels:
  node-role.kubernetes.io/edge: true
  environment: production
Copy to Clipboard Toggle word wrap

16.4.2.2. 추가 매니페스트에 대한 리소스 구성

단일 노드 OpenShift 클러스터의 이미지 기반 배포에서 추가 리소스를 선택적으로 정의할 수 있습니다.

install-config.yamlimage-based-config.yaml 매니페스트가 있는 동일한 작업 디렉토리의 extra-manifests 폴더에 추가 리소스를 만듭니다.

참고

extra-manifests 디렉토리의 추가 리소스에 대한 파일 이름은 30자를 넘을 수 없습니다. 파일 이름이 길면 배포에 실패할 수 있습니다.

16.4.2.2.1. extra-manifests 폴더에 리소스 생성

작업 디렉토리의 extra-manifests 폴더에 리소스를 만들어 단일 노드 OpenShift 클러스터의 이미지 기반 배포에 추가 매니페스트를 추가할 수 있습니다.

다음 예제에서는 배포에 단일 루트 I/O 가상화(SR-IOV) 네트워크를 추가합니다.

참고

두 개 이상의 매니페스트를 추가하고 매니페스트를 특정 순서로 적용해야 하는 경우, 매니페스트 파일 이름 앞에 필요한 순서를 나타내는 숫자를 접두사로 붙여야 합니다. 예를 들어, 00-namespace.yaml , 01-sriov-extra-manifest.yaml 등입니다.

사전 요구 사항

  • install-config.yamlimage-based-config.yaml 매니페스트를 사용하여 작업 디렉터리를 생성했습니다.

프로세스

  1. 작업 디렉토리로 이동하여 다음 명령을 실행하여 extra-manifests 폴더를 만듭니다.

    $ mkdir extra-manifests
    Copy to Clipboard Toggle word wrap
  2. extra-manifests 폴더에 SriovNetworkNodePolicySriovNetwork 리소스를 만듭니다.

    1. 리소스를 정의하는 YAML 파일을 만듭니다.

      sriov-extra-manifest.yaml 파일 예시

      apiVersion: sriovnetwork.openshift.io/v1
      kind: SriovNetworkNodePolicy
      metadata:
        name: "example-sriov-node-policy"
        namespace: openshift-sriov-network-operator
      spec:
        deviceType: vfio-pci
        isRdma: false
        nicSelector:
          pfNames: [ens1f0]
        nodeSelector:
          node-role.kubernetes.io/master: ""
        mtu: 1500
        numVfs: 8
        priority: 99
        resourceName: example-sriov-node-policy
      ---
      apiVersion: sriovnetwork.openshift.io/v1
      kind: SriovNetwork
      metadata:
        name: "example-sriov-network"
        namespace: openshift-sriov-network-operator
      spec:
        ipam: |-
          {
          }
        linkState: auto
        networkNamespace: sriov-namespace
        resourceName: example-sriov-node-policy
        spoofChk: "on"
        trust: "off"
      Copy to Clipboard Toggle word wrap

검증

  • 구성 ISO를 생성하면 작업 디렉토리의 .openshift_install_state.json 파일에서 추가 매니페스트에 대한 참조를 볼 수 있습니다.

     "*configimage.ExtraManifests": {
            "FileList": [
                {
                    "Filename": "extra-manifests/sriov-extra-manifest.yaml",
                    "Data": "YXBFDFFD..."
                }
            ]
        }
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat