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


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

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

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

IBI(Image Based Install) Operator는 이러한 리소스에서 구성 ISO를 생성한 다음 구성 ISO가 연결된 호스트를 부팅합니다. 호스트는 구성 ISO를 마운트하고 재구성 프로세스를 실행합니다. 재구성이 완료되면 단일 노드 OpenShift 클러스터가 준비됩니다.

참고

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

hub-and-spoke 아키텍처가 있는 클러스터에 사전 설치된 호스트를 배포하려면 다음 고급 단계를 참조하십시오.

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

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

16.4.1.1. Image Based Install Operator 설치

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

참고

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

사전 요구 사항

  • cluster-admin 권한이 있는 사용자로 로그인했습니다.
  • RHACM(Red Hat Advanced Cluster Management) 허브 클러스터를 배포했거나 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}}]'

검증

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

    $ oc get pods -A | grep image-based

    출력 예

    multicluster-engine             image-based-install-operator-57fb8sc423-bxdj8             2/2     Running     0               5m

16.4.1.2. IBI Operator를 사용하여 관리형 단일 노드 OpenShift 클러스터 배포

hub 클러스터에 사이트별 구성 리소스를 생성하여 사전 설치된 호스트의 이미지 기반 배포를 시작합니다.

허브 클러스터에서 이러한 구성 리소스를 생성할 때 IBI(Image Based Install) Operator는 구성 ISO를 생성하여 대상 호스트에 연결하여 사이트별 구성 프로세스를 시작합니다. 구성 프로세스가 완료되면 단일 노드 OpenShift 클러스터가 준비됩니다.

참고

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

사전 요구 사항

  • 이미지 기반 설치를 사용하여 단일 노드 OpenShift로 호스트를 사전 설치했습니다.
  • cluster-admin 권한이 있는 사용자로 로그인했습니다.
  • RHACM(Red Hat Advanced Cluster Management) 허브 클러스터를 배포했거나 MC(Kubernetes Operator)용 다중 클러스터 엔진을 배포했습니다.
  • hub 클러스터에 IBI Operator가 설치되어 있어야 합니다.
  • 가져오기 요청을 인증하는 풀 시크릿을 생성했습니다. 자세한 내용은 "이미지 풀 시크릿 사용"을 참조하십시오.

프로세스

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

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

    1. 이미지 레지스트리에 대한 Secret 리소스를 정의하는 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

      1
      base64로 인코딩된 인증 정보 세부 정보를 제공해야 합니다. 이미지 가져오기 보안 사용에 대한 자세한 내용은 "추가 리소스" 섹션을 참조하십시오.
    2. 다음 명령을 실행하여 이미지 레지스트리에 대한 Secret 리소스를 생성합니다.

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

    1. nmstate 형식으로 정적 네트워크 구성을 포함하는 Secret 리소스를 생성합니다.

      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

      1
      Secret 리소스의 이름을 지정합니다.
      2
      nmstate 형식으로 정적 네트워크 구성을 정의합니다.
      3
      호스트의 인터페이스 이름을 지정합니다. 인터페이스 이름은 운영 체제에 표시된 대로 실제 NIC 이름과 일치해야 합니다. NIC 일치에 MAC 주소를 사용하려면 ID 필드를 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

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

      $ oc create -f ibi-bmh.yaml
  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

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

      $ oc apply -f ibi-cluster-image-set.yaml
  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"

      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
  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

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

      $ oc apply -f ibi-cluster-deployment.yaml
  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

      1
      ManagedCluster 리소스의 이름을 지정합니다.
      2
      RHACM에서 클러스터를 관리하려면 true 를 지정합니다.
    2. 다음 명령을 실행하여 ManagedCluster 리소스를 생성합니다.

      $ oc apply -f ibi-managed.yaml

검증

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

    $ oc get imageclusterinstall

    출력 예

    NAME       REQUIREMENTSMET           COMPLETED                     BAREMETALHOSTREF
    target-0   HostValidationSucceeded   ClusterInstallationSucceeded  ibi-bmh

    주의

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

16.4.1.2.1. 사전 설치된 호스트 배포를 위한 클러스터 구성 리소스

원격 사이트에서 사전 설치된 호스트에 대한 배포를 완료하려면 각 베어 메탈 호스트에 대해 hub 클러스터에서 다음 site-specifc 클러스터 구성 리소스를 구성해야 합니다.

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

네임스페이스

관리형 단일 노드 OpenShift 클러스터의 네임스페이스입니다.

BareMetalHost

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

베어 메탈 호스트의 시크릿

호스트 BMC의 자격 증명.

베어 메탈 호스트 정적 네트워크 구성의 시크릿

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

이미지 레지스트리의 시크릿

이미지 레지스트리의 인증 정보입니다. 이미지 레지스트리의 시크릿은 kubernetes.io/dockerconfigjson 유형이어야 합니다.

ImageClusterInstall

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

ClusterImageSet

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

ClusterDeployment

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

ManagedCluster

RHACM(Red Hat Advanced Cluster Management)에서 등록하고 관리할 수 있는 클러스터 세부 정보에 대해 설명합니다.

ConfigMap

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

16.4.1.2.2. ImageClusterInstall 리소스 API 사양

다음 콘텐츠는 ImageClusterInstall 리소스의 API 사양을 설명합니다. 이 리소스는 Image Based Install Operator의 끝점입니다.

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

imageSetRef

string

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

hostname

string

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

sshKey

string

대상 호스트에 대한 SSH 액세스를 제공할 SSH 키를 지정합니다.

표 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"

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"

caBundleRef

string

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

16.4.1.3. 추가 매니페스트를 위한 ConfigMap 리소스

필요한 경우 ConfigMap 리소스를 생성하여 관리형 단일 노드 OpenShift 클러스터에 대한 이미지 기반 배포에서 추가 매니페스트를 정의할 수 있습니다.

ConfigMap 리소스를 생성한 후 ImageClusterInstall 리소스에서 참조합니다. 배포하는 동안 IBI Operator에는 배포에 추가 매니페스트가 포함됩니다.

16.4.1.3.1. 이미지 기반 배포에 추가 매니페스트를 추가하는 ConfigMap 리소스 생성

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

다음 예제에서는 SR-IOV(Single-root I/O Virtualization) 네트워크를 배포에 추가합니다.

사전 요구 사항

  • 이미지 기반 설치를 사용하여 단일 노드 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"

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

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

      출력 예

      configmap/sr-iov-extra-manifest created

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

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

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

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

사전 요구 사항

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

프로세스

  1. 다음 파일과 같은 CA 번들 파일을 생성합니다.

    예: example-ca.crt

    -----BEGIN CERTIFICATE-----
    MIIDXTCCAkWgAwIBAgIJAKmjYKJbIyz3MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
    ...Custom CA certificate bundle...
    4WPl0Qb27Sb1xZyAsy1ww6MYb98EovazUSfjYr2EVF6ThcAPu4/sMxUV7He2J6Jd
    cA8SMRwpUbz3LXY=
    -----END CERTIFICATE-----

  2. 다음 명령을 실행하여 ConfigMap 오브젝트를 생성합니다.

    $ oc create configmap custom-ca --from-file=example-ca.crt -n ibi-ns 1
    1
    ImageClusterInstall 리소스가 있는 네임스페이스를 지정합니다.

    출력 예

    configmap/custom-ca created

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

    #...
      spec:
        caBundleRef:
          name: custom-ca
    #...

16.4.2. 단일 노드 OpenShift를 위한 이미지 기반 배포 정보

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

16.4.2.1. openshift-install 프로그램을 사용하여 단일 노드 OpenShift 클러스터 배포

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

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

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

참고

image-based-config.yaml 매니페스트의 사양에 대한 자세한 내용은 "이미지 기반-config.yaml 매니페스트에 대한 참조 사양"을 참조하십시오.

사전 요구 사항

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

프로세스

  1. 다음을 실행하여 작업 디렉터리를 생성합니다.

    $ mkdir ibi-config-iso-workdir 1
    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:
        clusterNetwork:
        - cidr: 10.128.0.0/14
          hostPrefix: 23
        machineNetwork:
        - cidr: 192.168.200.0/24
        networkType: OVNKubernetes
        serviceNetwork:
        - 172.30.0.0/16
      platform:
        none: {}
      fips: false
      cpuPartitioningMode: "AllNodes"
      pullSecret: '{"auths":{"<your_pull_secret>"}}}'
      sshKey: 'ssh-rsa <your_ssh_pub_key>'

      중요

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

      • 프록시 구성을 제공하는 시드 클러스터에서 시드 이미지를 생성합니다. 프록시 구성이 일치하지 않아도 됩니다.
      • 설치 매니페스트에서 machineNetwork 필드를 구성합니다.
    2. 파일을 작업 디렉터리에 저장합니다.
  3. 선택 사항: 다음 명령을 실행하여 작업 디렉터리에 구성 템플릿을 생성합니다.

    $ openshift-install image-based create config-template --dir ibi-config-iso-workdir/

    출력 예

    INFO Config-Template created in: ibi-config-iso-workdir

    이 명령은 작업 디렉터리에 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
  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

  5. 다음 명령을 실행하여 작업 디렉터리에 구성 ISO를 생성합니다.

    $ openshift-install image-based create config-image --dir ibi-config-iso-workdir/

    출력 예

    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

    작업 디렉터리의 출력을 확인합니다.

    출력 예

    ibi-config-iso-workdir/
    ├── auth
    │   ├── kubeadmin-password
    │   └── kubeconfig
    └── imagebasedconfig.iso

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

검증

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

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

    $ export KUBECONFIG=ibi-config-iso-workdir/auth/kubeconfig
  2. 다음 명령을 실행하여 클러스터가 응답하는지 확인합니다.

    $ oc get nodes

    출력 예

    NAME                                         STATUS   ROLES                  AGE     VERSION
    node/sno-cluster-name.host.example.com       Ready    control-plane,master   5h15m   v1.30.3

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

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

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

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

hostname

string

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

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

networkConfig

string

호스트에 대한 네트워킹 구성을 지정합니다. 예를 들면 다음과 같습니다.

networkConfig:
    interfaces:
      - name: ens1f0
        type: ethernet
        state: up
        ...

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

중요

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

additionalNTPSources

string

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

releaseRegistry

string

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

16.4.2.2. 추가 매니페스트를 위한 리소스 구성

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

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

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

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

다음 예제에서는 SR-IOV(Single-root I/O Virtualization) 네트워크를 배포에 추가합니다.

사전 요구 사항

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

프로세스

  1. 다음 명령을 실행하여 작업 디렉터리로 이동하고 추가-manifests 폴더를 생성합니다.

    $ mkdir extra-manifests
  2. extra-manifests 폴더에 SriovNetwork NodePolicy 및 SriovNetwork 리소스를 생성합니다.

    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"

검증

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

     "*configimage.ExtraManifests": {
            "FileList": [
                {
                    "Filename": "extra-manifests/sriov-extra-manifest.yaml",
                    "Data": "YXBFDFFD..."
                }
            ]
        }
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.