6.2. 연결이 끊긴 환경에서 OpenShift Virtualization에 호스트된 컨트롤 플레인 배포


연결이 끊긴 환경에서 호스팅되는 컨트롤 플레인을 배포할 때 사용하는 플랫폼에 따라 일부 단계가 다릅니다. 다음 절차는 OpenShift Virtualization의 배포와 관련이 있습니다.

6.2.1. 사전 요구 사항

  • 관리 클러스터 역할을 하는 연결이 끊긴 OpenShift Container Platform 환경이 있어야 합니다.
  • 이미지를 미러링할 내부 레지스트리가 있습니다. 자세한 내용은 연결 해제된 설치 미러링 정보를 참조하십시오.

이미지 미러링은 registry.redhat.com 또는 quay.io 와 같은 외부 레지스트리에서 이미지를 가져와서 프라이빗 레지스트리에 저장하는 프로세스입니다.

다음 절차에서는 ImageSetConfiguration 오브젝트를 사용하는 바이너리인 oc-mirror 툴이 사용됩니다. 파일에서 다음 정보를 지정할 수 있습니다.

  • 미러링할 OpenShift Container Platform 버전입니다. 버전은 quay.io 에 있습니다.
  • 미러링할 추가 Operator입니다. 패키지를 개별적으로 선택합니다.
  • 리포지토리에 추가할 추가 이미지입니다.

사전 요구 사항

  • 미러링 프로세스를 시작하기 전에 레지스트리 서버가 실행 중인지 확인합니다.

프로세스

이미지 미러링을 구성하려면 다음 단계를 완료합니다.

  1. 이미지를 푸시하려는 프라이빗 레지스트리와 미러링할 레지스트리를 사용하여 ${HOME}/.docker/config.json 파일이 업데이트되었는지 확인합니다.
  2. 다음 예제를 사용하여 미러링에 사용할 ImageSetConfiguration 오브젝트를 만듭니다. 환경에 맞게 필요에 따라 값을 바꿉니다.

    apiVersion: mirror.openshift.io/v2alpha1
    kind: ImageSetConfiguration
    mirror:
      platform:
        channels:
        - name: candidate-4.20
          minVersion: <4.x.y-build>  
    1
    
          maxVersion: <4.x.y-build> 
    2
    
          type: ocp
        kubeVirtContainer: true 
    3
    
        graph: true
      operators:
      - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.20
        packages:
        - name: lvms-operator
        - name: local-storage-operator
        - name: odf-csi-addons-operator
        - name: odf-operator
        - name: mcg-operator
        - name: ocs-operator
        - name: metallb-operator
        - name: kubevirt-hyperconverged 
    4
    Copy to Clipboard Toggle word wrap
    1 2
    & lt;4.x.y-build >를 사용하려는 지원되는 OpenShift Container Platform 버전으로 바꿉니다.
    3
    KubeVirt 공급자의 RHCOS(Red Hat Enterprise Linux CoreOS) 부팅 이미지의 컨테이너 디스크 이미지도 미러링하려면 이 선택적 플래그를 true 로 설정합니다. 이 플래그는 oc-mirror v2에서만 사용할 수 있습니다.
    4
    KubeVirt 공급자를 사용하는 배포의 경우 이 행을 포함합니다.
  3. 다음 명령을 입력하여 미러링 프로세스를 시작합니다.

    $ oc-mirror --v2 --config imagesetconfig.yaml \
      --workspace file://mirror-file docker://<registry>
    Copy to Clipboard Toggle word wrap

    미러링 프로세스가 완료되면 IDMS( ImageDigestMirrorSet ), ImageTagMirrorSet (ITMS) 및 호스팅된 클러스터에 적용할 카탈로그 소스가 포함된 mirror-file 이라는 새 폴더가 있습니다.

  4. imagesetconfig.yaml 파일을 다음과 같이 구성하여 OpenShift Container Platform의 Nightly 또는 CI 버전을 미러링합니다.

    apiVersion: mirror.openshift.io/v2alpha1
    kind: ImageSetConfiguration
    mirror:
      platform:
        graph: true
        release: registry.ci.openshift.org/ocp/release:<4.x.y-build> 
    1
    
        kubeVirtContainer: true 
    2
    
    # ...
    Copy to Clipboard Toggle word wrap
    1
    & lt;4.x.y-build >를 사용하려는 지원되는 OpenShift Container Platform 버전으로 바꿉니다.
    2
    KubeVirt 공급자의 RHCOS(Red Hat Enterprise Linux CoreOS) 부팅 이미지의 컨테이너 디스크 이미지도 미러링하려면 이 선택적 플래그를 true 로 설정합니다. 이 플래그는 oc-mirror v2에서만 사용할 수 있습니다.
  5. 부분적으로 연결이 끊긴 환경이 있는 경우 다음 명령을 입력하여 이미지 세트 구성의 이미지를 레지스트리로 미러링합니다.

    $ oc mirror -c imagesetconfig.yaml \
      --workspace file://<file_path> docker://<mirror_registry_url> --v2
    Copy to Clipboard Toggle word wrap

    자세한 내용은 "부분 연결이 끊긴 환경에서 이미지 세트 미러링"을 참조하십시오.

  6. 완전히 연결이 끊긴 환경이 있는 경우 다음 단계를 수행합니다.

    1. 다음 명령을 입력하여 지정된 이미지 세트 구성의 이미지를 디스크로 미러링합니다.

      $ oc mirror -c imagesetconfig.yaml file://<file_path> --v2
      Copy to Clipboard Toggle word wrap

      자세한 내용은 "완전하게 연결이 끊긴 환경에서 이미지 세트 미러링"을 참조하십시오.

    2. 디스크에서 이미지 세트 파일을 처리하고 다음 명령을 입력하여 콘텐츠를 대상 미러 레지스트리에 미러링합니다.

      $ oc mirror -c imagesetconfig.yaml \
        --from file://<file_path> docker://<mirror_registry_url> --v2
      Copy to Clipboard Toggle word wrap
  7. 연결이 끊긴 네트워크에 설치 단계에 따라 최신 다중 클러스터 엔진 Operator 이미지를 미러링합니다.

6.2.3. 관리 클러스터에 오브젝트 적용

미러링 프로세스가 완료되면 관리 클러스터에 두 개의 오브젝트를 적용해야 합니다.

  • ImageContentSourcePolicy (ICSP) 또는 ImageDigestMirrorSet (IDMS)
  • 카탈로그 소스

oc-mirror 툴을 사용하는 경우 출력 아티팩트는 oc-mirror-workspace/results-XXXXXX/ 이라는 폴더에 있습니다.

ICSP 또는 IDMS는 노드를 재시작하지 않고 각 노드에서 kubelet을 다시 시작하는 MachineConfig 변경을 시작합니다. 노드가 READY 로 표시되면 새로 생성된 카탈로그 소스를 적용해야 합니다.

카탈로그 소스는 카탈로그 이미지 다운로드 및 처리와 같은 openshift-marketplace Operator에서 작업을 시작하여 해당 이미지에 포함된 모든 PackageManifest 를 검색합니다.

프로세스

  1. 새 소스를 확인하려면 새 CatalogSource 를 소스로 사용하여 다음 명령을 실행합니다.

    $ oc get packagemanifest
    Copy to Clipboard Toggle word wrap
  2. 아티팩트를 적용하려면 다음 단계를 완료합니다.

    1. 다음 명령을 입력하여 ICSP 또는 IDMS 아티팩트를 생성합니다.

      $ oc apply -f oc-mirror-workspace/results-XXXXXX/imageContentSourcePolicy.yaml
      Copy to Clipboard Toggle word wrap
    2. 노드가 준비될 때까지 기다린 다음 다음 명령을 입력합니다.

      $ oc apply -f catalogSource-XXXXXXXX-index.yaml
      Copy to Clipboard Toggle word wrap
  3. OLM 카탈로그를 미러링하고 미러를 가리키도록 호스팅 클러스터를 구성합니다.

    관리 (기본값) OLMCatalogPlacement 모드를 사용하면 관리 클러스터의 ICSP에서 재정의 정보를 사용하여 OLM 카탈로그에 사용되는 이미지 스트림이 자동으로 수정되지 않습니다.

    1. 원래 이름 및 태그를 사용하여 OLM 카탈로그가 내부 레지스트리에 올바르게 미러링된 경우 hypershift.openshift.io/olm-catalogs-is-registry-overrides 주석을 HostedCluster 리소스에 추가합니다. 형식은 "sr1=dr1,sr2=dr2" 입니다. 여기서 소스 레지스트리 문자열은 키이고 대상 레지스트리는 값입니다.
    2. OLM 카탈로그 이미지 스트림 메커니즘을 바이패스하려면 HostedCluster 리소스에서 다음 4개의 주석을 사용하여 OLM Operator 카탈로그에 사용할 4개의 이미지의 주소를 직접 지정합니다.

      • hypershift.openshift.io/certified-operators-catalog-image
      • hypershift.openshift.io/community-operators-catalog-image
      • hypershift.openshift.io/redhat-marketplace-catalog-image
      • hypershift.openshift.io/redhat-operators-catalog-image

이 경우 이미지 스트림이 생성되지 않으며 Operator 업데이트를 가져오려면 내부 미러를 새로 고칠 때 주석 값을 업데이트해야 합니다.

다음 단계

호스팅된 컨트롤 플레인의 연결이 끊긴 설치를 위해 다중 클러스터 엔진 Operator 배포 단계를 완료하여 다중 클러스터 엔진 Operator를 배포합니다.

Kubernetes Operator의 멀티 클러스터 엔진은 공급자 전체에 클러스터를 배포하는 데 중요한 역할을 합니다. 다중 클러스터 엔진 Operator가 설치되어 있지 않은 경우 다음 문서를 검토하여 사전 요구 사항 및 설치 단계를 확인하십시오.

연결이 끊긴 배포에서 제대로 작동하려면 관리 클러스터에서 레지스트리 CA 인증서와 호스팅된 클러스터의 작업자 노드를 구성해야 합니다.

6.2.5.1. 관리 클러스터에 레지스트리 CA 추가

레지스트리 CA를 관리 클러스터에 추가하려면 다음 단계를 완료합니다.

프로세스

  1. 다음 예와 유사한 구성 맵을 생성합니다.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: <config_map_name> 
    1
    
      namespace: <config_map_namespace> 
    2
    
    data: 
    3
    
      <registry_name>..<port>: | 
    4
    
        -----BEGIN CERTIFICATE-----
        -----END CERTIFICATE-----
      <registry_name>..<port>: |
        -----BEGIN CERTIFICATE-----
        -----END CERTIFICATE-----
      <registry_name>..<port>: |
        -----BEGIN CERTIFICATE-----
        -----END CERTIFICATE-----
    Copy to Clipboard Toggle word wrap
    1
    구성 맵 이름을 지정합니다.
    2
    구성 맵의 네임스페이스를 지정합니다.
    3
    data 필드에서 레지스트리 이름과 레지스트리 인증서 콘텐츠를 지정합니다. & lt;port& gt;를 레지스트리 서버가 실행 중인 포트(예: 5000 )로 바꿉니다.
    4
    | - 와 같은 다른 방법 대신 | 을 사용하여 구성 맵의 데이터를 정의해야 합니다. 다른 방법을 사용하는 경우 Pod에서 인증서를 읽을 때 문제가 발생할 수 있습니다.
  2. 클러스터 전체 오브젝트 image.config.openshift.io 를 패치하여 다음 사양을 포함합니다.

    spec:
      additionalTrustedCA:
        - name: registry-config
    Copy to Clipboard Toggle word wrap

    이 패치로 인해 컨트롤 플레인 노드는 프라이빗 레지스트리에서 이미지를 검색할 수 있으며 HyperShift Operator는 호스팅된 클러스터 배포를 위해 OpenShift Container Platform 페이로드를 추출할 수 있습니다.

    오브젝트 패치 프로세스를 완료하는 데 몇 분이 걸릴 수 있습니다.

6.2.5.2. 호스트된 클러스터의 작업자 노드에 레지스트리 CA 추가

호스팅된 클러스터의 데이터 플레인 작업자가 프라이빗 레지스트리에서 이미지를 검색하려면 레지스트리 CA를 작업자 노드에 추가해야 합니다.

프로세스

  1. hc.spec.additionalTrustBundle 파일에서 다음 사양을 추가합니다.

    spec:
      additionalTrustBundle:
        - name: user-ca-bundle 
    1
    Copy to Clipboard Toggle word wrap
    1
    user-ca-bundle 항목은 다음 단계에서 생성하는 구성 맵입니다.
  2. HostedCluster 오브젝트가 생성된 동일한 네임스페이스에서 user-ca-bundle 구성 맵을 생성합니다. 구성 맵은 다음 예와 유사합니다.

    apiVersion: v1
    data:
      ca-bundle.crt: |
        // Registry1 CA
        -----BEGIN CERTIFICATE-----
        -----END CERTIFICATE-----
    
        // Registry2 CA
        -----BEGIN CERTIFICATE-----
        -----END CERTIFICATE-----
    
        // Registry3 CA
        -----BEGIN CERTIFICATE-----
        -----END CERTIFICATE-----
    
    kind: ConfigMap
    metadata:
      name: user-ca-bundle
      namespace: <hosted_cluster_namespace> 
    1
    Copy to Clipboard Toggle word wrap
    1
    HostedCluster 오브젝트가 생성되는 네임스페이스를 지정합니다.

6.2.6. OpenShift Virtualization에서 호스트된 클러스터 생성

호스팅 클러스터는 관리 클러스터에서 호스팅되는 컨트롤 플레인 및 API 끝점이 있는 OpenShift Container Platform 클러스터입니다. 호스트된 클러스터에는 컨트롤 플레인과 해당 데이터 플레인이 포함됩니다.

OpenShift Virtualization에 호스팅된 컨트롤 플레인을 배포할 준비가 되면 다음 정보를 고려하십시오.

  • 베어 메탈에서 관리 클러스터를 실행합니다.
  • 각 호스트 클러스터에는 클러스터 전체 이름이 있어야 합니다.
  • 클러스터를 호스팅 클러스터 이름으로 사용하지 마십시오.
  • 호스트된 클러스터는 다중 클러스터 엔진 Operator 관리 클러스터의 네임스페이스에서 생성할 수 없습니다.
  • 호스트된 컨트롤 플레인에 대한 스토리지를 구성할 때 권장 etcd 사례를 고려하십시오. 대기 시간 요구 사항을 충족하는지 확인하려면 각 컨트롤 플레인 노드에서 실행되는 모든 호스팅 컨트롤 플레인 etcd 인스턴스에 빠른 스토리지 장치를 전용으로 지정합니다. LVM 스토리지를 사용하여 호스팅된 etcd pod의 로컬 스토리지 클래스를 구성할 수 있습니다. 자세한 내용은 "Recommended etcd practices" 및 "Persistent storage using Logical Volume Manager storage"를 참조하십시오.

6.2.6.2. CLI를 사용하여 KubeVirt 플랫폼에서 호스트 클러스터 생성

호스트된 클러스터를 생성하려면 호스팅된 컨트롤 플레인 CLI(명령줄 인터페이스) hcp 를 사용할 수 있습니다.

프로세스

  1. 다음 명령을 입력하여 KubeVirt 플랫폼을 사용하여 호스팅된 클러스터를 생성합니다.

    $ hcp create cluster kubevirt \
      --name <hosted_cluster_name> \
    1
    
      --node-pool-replicas <node_pool_replica_count> \
    2
    
      --pull-secret <path_to_pull_secret> \
    3
    
      --memory <value_for_memory> \
    4
    
      --cores <value_for_cpu> \
    5
    
      --etcd-storage-class=<etcd_storage_class> 
    6
    Copy to Clipboard Toggle word wrap
    1
    호스트 클러스터의 이름을 지정합니다(예: my-hosted-cluster ).
    2
    노드 풀 복제본 수를 지정합니다(예: 3 ). 동일한 수의 복제본을 생성하려면 복제본 수를 0 이상으로 지정해야 합니다. 그렇지 않으면 노드 풀이 생성되지 않습니다.
    3
    풀 시크릿의 경로를 지정합니다(예: /user/name/pullsecret ).
    4
    메모리 값을 지정합니다(예: 6Gi ).
    5
    CPU 값을 지정합니다(예: 2 ).
    6
    etcd 스토리지 클래스 이름을 지정합니다(예: lvm-storageclass ).
    참고

    --release-image 플래그를 사용하여 특정 OpenShift Container Platform 릴리스로 호스팅 클러스터를 설정할 수 있습니다.

    --node-pool-replicas 플래그에 따라 두 개의 가상 머신 작업자 복제본이 있는 클러스터에 대한 기본 노드 풀이 생성됩니다.

  2. 잠시 후 다음 명령을 입력하여 호스팅된 컨트롤 플레인 포드가 실행 중인지 확인합니다.

    $ oc -n clusters-<hosted-cluster-name> get pods
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                                                  READY   STATUS    RESTARTS   AGE
    capi-provider-5cc7b74f47-n5gkr                        1/1     Running   0          3m
    catalog-operator-5f799567b7-fd6jw                     2/2     Running   0          69s
    certified-operators-catalog-784b9899f9-mrp6p          1/1     Running   0          66s
    cluster-api-6bbc867966-l4dwl                          1/1     Running   0          66s
    .
    .
    .
    redhat-operators-catalog-9d5fd4d44-z8qqk              1/1     Running   0          66s
    Copy to Clipboard Toggle word wrap

    KubeVirt 가상 머신에서 지원하는 작업자 노드가 있는 호스팅된 클러스터는 일반적으로 완전히 프로비저닝되는 데 10-15분이 걸립니다.

검증

  • 호스트 클러스터의 상태를 확인하려면 다음 명령을 입력하여 해당 HostedCluster 리소스를 참조하십시오.

    $ oc get --namespace clusters hostedclusters
    Copy to Clipboard Toggle word wrap

    완전히 프로비저닝된 HostedCluster 오브젝트를 설명하는 다음 예제 출력을 참조하십시오.

    NAMESPACE   NAME                VERSION     KUBECONFIG                 PROGRESS    AVAILABLE   PROGRESSING   MESSAGE
    clusters    my-hosted-cluster   <4.x.0>     example-admin-kubeconfig   Completed   True        False         The hosted control plane is available
    Copy to Clipboard Toggle word wrap

    & lt;4.x.0 >을 사용하려는 지원되는 OpenShift Container Platform 버전으로 바꿉니다.

모든 OpenShift Container Platform 클러스터에는 기본 애플리케이션 Ingress 컨트롤러가 포함되어 있으며, 이와 연결된 와일드카드 DNS 레코드가 있어야 합니다. 기본적으로 HyperShift KubeVirt 공급자를 사용하여 생성된 호스팅 클러스터는 KubeVirt 가상 머신이 실행되는 OpenShift Container Platform 클러스터의 하위 도메인이 자동으로 됩니다.

예를 들어 OpenShift Container Platform 클러스터에 다음과 같은 기본 인그레스 DNS 항목이 있을 수 있습니다.

*.apps.mgmt-cluster.example.com
Copy to Clipboard Toggle word wrap

결과적으로 guest 라는 이름의 KubeVirt 호스팅 클러스터에는 다음과 같은 기본 수신이 있습니다.

*.apps.guest.apps.mgmt-cluster.example.com
Copy to Clipboard Toggle word wrap

프로세스

기본 인그레스 DNS가 제대로 작동하려면 KubeVirt 가상 머신을 호스팅하는 클러스터에서 와일드카드 DNS 경로를 허용해야 합니다.

  • 다음 명령을 입력하여 이 동작을 구성할 수 있습니다.

    $ oc patch ingresscontroller -n openshift-ingress-operator default \
      --type=json \
      -p '[{ "op": "add", "path": "/spec/routeAdmission", "value": {wildcardPolicy: "WildcardsAllowed"}}]'
    Copy to Clipboard Toggle word wrap
참고

기본 호스팅 클러스터 수신을 사용하는 경우 포트 443을 통한 HTTPS 트래픽으로 제한됩니다. 포트 80을 통한 일반 HTTP 트래픽이 거부됩니다. 이 제한은 기본 수신 동작에만 적용됩니다.

6.2.6.4. 수신 및 DNS 동작 사용자 정의

기본 수신 및 DNS 동작을 사용하지 않으려면 생성 시 KubeVirt 호스팅 클러스터를 고유 기본 도메인으로 구성할 수 있습니다. 이 옵션을 사용하려면 생성 중에 수동 구성 단계가 필요하며 클러스터 생성, 로드 밸런서 생성 및 와일드카드 DNS 구성의 세 가지 주요 단계가 포함됩니다.

6.2.6.4.1. 기본 도메인을 지정하는 호스팅된 클러스터 배포

기본 도메인을 지정하는 호스팅 클러스터를 생성하려면 다음 단계를 완료합니다.

프로세스

  1. 다음 명령을 실행합니다.

    $ hcp create cluster kubevirt \
      --name <hosted_cluster_name> \ 
    1
    
      --node-pool-replicas <worker_count> \ 
    2
    
      --pull-secret <path_to_pull_secret> \ 
    3
    
      --memory <value_for_memory> \ 
    4
    
      --cores <value_for_cpu> \ 
    5
    
      --base-domain <basedomain> 
    6
    Copy to Clipboard Toggle word wrap
    1
    호스팅된 클러스터의 이름을 지정합니다.
    2
    작업자 수를 지정합니다(예: 2).
    3
    풀 시크릿의 경로를 지정합니다(예: /user/name/pullsecret ).
    4
    메모리 값을 지정합니다(예: 6Gi ).
    5
    CPU 값을 지정합니다(예: 2 ).
    6
    기본 도메인을 지정합니다(예: hypershift.lab ).

    결과적으로 호스팅된 클러스터에는 클러스터 이름과 기본 도메인(예: .apps.example.hypershift.lab )에 대해 구성된 수신 와일드카드가 있습니다. 호스트 클러스터는 고유한 기본 도메인을 사용하여 호스팅 클러스터를 생성한 후 필요한 DNS 레코드 및 로드 밸런서를 구성해야 하므로 부분적 상태로 유지됩니다.

검증

  1. 다음 명령을 입력하여 호스팅 클러스터의 상태를 확인합니다.

    $ oc get --namespace clusters hostedclusters
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME            VERSION   KUBECONFIG                       PROGRESS   AVAILABLE   PROGRESSING   MESSAGE
    example                   example-admin-kubeconfig         Partial    True        False         The hosted control plane is available
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 입력하여 클러스터에 액세스합니다.

    $ hcp create kubeconfig --name <hosted_cluster_name> \
      > <hosted_cluster_name>-kubeconfig
    Copy to Clipboard Toggle word wrap
    $ oc --kubeconfig <hosted_cluster_name>-kubeconfig get co
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    console                                    <4.x.0>     False       False         False      30m     RouteHealthAvailable: failed to GET route (https://console-openshift-console.apps.example.hypershift.lab): Get "https://console-openshift-console.apps.example.hypershift.lab": dial tcp: lookup console-openshift-console.apps.example.hypershift.lab on 172.31.0.10:53: no such host
    ingress                                    <4.x.0>     True        False         True       28m     The "default" ingress controller reports Degraded=True: DegradedConditions: One or more other status conditions indicate a degraded state: CanaryChecksSucceeding=False (CanaryChecksRepetitiveFailures: Canary route checks for the default ingress controller are failing)
    Copy to Clipboard Toggle word wrap

    & lt;4.x.0 >을 사용하려는 지원되는 OpenShift Container Platform 버전으로 바꿉니다.

다음 단계

출력에서 오류를 수정하려면 "로드 밸런서 설정" 및 " 와일드카드 DNS 설정"의 단계를 완료합니다.

참고

호스팅 클러스터가 베어 메탈에 있는 경우 로드 밸런서 서비스를 설정하려면 MetalLB가 필요할 수 있습니다. 자세한 내용은 " MetalLB 구성"을 참조하십시오.

6.2.6.4.2. 로드 밸런서 설정

Ingress 트래픽을 KubeVirt VM으로 라우팅하고 로드 밸런서 IP 주소에 와일드카드 DNS 항목을 할당하는 로드 밸런서 서비스를 설정합니다.

프로세스

  1. 호스팅된 클러스터 인그레스를 노출하는 NodePort 서비스가 이미 존재합니다. 노드 포트를 내보내고 해당 포트를 대상으로 하는 로드 밸런서 서비스를 생성할 수 있습니다.

    1. 다음 명령을 입력하여 HTTP 노드 포트를 가져옵니다.

      $ oc --kubeconfig <hosted_cluster_name>-kubeconfig get services \
        -n openshift-ingress router-nodeport-default \
        -o jsonpath='{.spec.ports[?(@.name=="http")].nodePort}'
      Copy to Clipboard Toggle word wrap

      다음 단계에서 사용할 HTTP 노드 포트 값을 확인합니다.

    2. 다음 명령을 입력하여 HTTPS 노드 포트를 가져옵니다.

      $ oc --kubeconfig <hosted_cluster_name>-kubeconfig get services \
        -n openshift-ingress router-nodeport-default \
        -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}'
      Copy to Clipboard Toggle word wrap

      다음 단계에서 사용할 HTTPS 노드 포트 값을 확인합니다.

  2. YAML 파일에 다음 정보를 입력합니다.

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: <hosted_cluster_name>
      name: <hosted_cluster_name>-apps
      namespace: clusters-<hosted_cluster_name>
    spec:
      ports:
      - name: https-443
        port: 443
        protocol: TCP
        targetPort: <https_node_port> 
    1
    
      - name: http-80
        port: 80
        protocol: TCP
        targetPort: <http_node_port> 
    2
    
      selector:
        kubevirt.io: virt-launcher
      type: LoadBalancer
    Copy to Clipboard Toggle word wrap
    1
    이전 단계에서 기록한 HTTPS 노드 포트 값을 지정합니다.
    2
    이전 단계에서 기록한 HTTP 노드 포트 값을 지정합니다.
  3. 다음 명령을 실행하여 로드 밸런서 서비스를 생성합니다.

    $ oc create -f <file_name>.yaml
    Copy to Clipboard Toggle word wrap
6.2.6.4.3. 와일드카드 DNS 설정

로드 밸런서 서비스의 외부 IP를 참조하는 와일드카드 DNS 레코드 또는 CNAME을 설정합니다.

프로세스

  1. 다음 명령을 입력하여 외부 IP 주소를 가져옵니다.

    $ oc -n clusters-<hosted_cluster_name> get service <hosted-cluster-name>-apps \
      -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    Copy to Clipboard Toggle word wrap

    출력 예

    192.168.20.30
    Copy to Clipboard Toggle word wrap

  2. 외부 IP 주소를 참조하는 와일드카드 DNS 항목을 구성합니다. 다음 예제 DNS 항목을 확인합니다.

    *.apps.<hosted_cluster_name\>.<base_domain\>.
    Copy to Clipboard Toggle word wrap

    DNS 항목은 클러스터 내부 및 외부에서 라우팅할 수 있어야 합니다.

    DNS 확인 예

    dig +short test.apps.example.hypershift.lab
    
    192.168.20.30
    Copy to Clipboard Toggle word wrap

검증

  • 다음 명령을 입력하여 호스팅 클러스터 상태가 Partial 에서 Completed 로 이동했는지 확인합니다.

    $ oc get --namespace clusters hostedclusters
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME            VERSION   KUBECONFIG                       PROGRESS    AVAILABLE   PROGRESSING   MESSAGE
    example         <4.x.0>     example-admin-kubeconfig         Completed   True        False         The hosted control plane is available
    Copy to Clipboard Toggle word wrap

    & lt;4.x.0 >을 사용하려는 지원되는 OpenShift Container Platform 버전으로 바꿉니다.

6.2.7. 배포 완료

컨트롤 플레인과 데이터 플레인의 두 가지 관점에서 호스팅 클러스터 배포를 모니터링할 수 있습니다.

6.2.7.1. 컨트롤 플레인 모니터링

배포가 진행되는 동안 다음 아티팩트에 대한 정보를 수집하여 컨트롤 플레인을 모니터링할 수 있습니다.

  • HyperShift Operator
  • HostedControlPlane Pod
  • 베어 메탈 호스트
  • 에이전트
  • InfraEnv 리소스
  • HostedClusterNodePool 리소스

프로세스

  • 다음 명령을 입력하여 컨트롤 플레인을 모니터링합니다.

    $ export KUBECONFIG=/root/.kcli/clusters/hub-ipv4/auth/kubeconfig
    Copy to Clipboard Toggle word wrap
    $ watch "oc get pod -n hypershift;echo;echo;\
      oc get pod -n clusters-hosted-ipv4;echo;echo;\
      oc get bmh -A;echo;echo;\
      oc get agent -A;echo;echo;\
      oc get infraenv -A;echo;echo;\
      oc get hostedcluster -A;echo;echo;\
      oc get nodepool -A;echo;echo;"
    Copy to Clipboard Toggle word wrap

6.2.7.2. 데이터 플레인 모니터링

배포가 진행되는 동안 다음 아티팩트에 대한 정보를 수집하여 데이터 플레인을 모니터링할 수 있습니다.

  • 클러스터 버전
  • 특히 노드가 클러스터에 참여하는지 여부에 대한 노드
  • 클러스터 Operator

프로세스

  • 다음 명령을 입력합니다.

    $ oc get secret -n clusters-hosted-ipv4 admin-kubeconfig \
      -o jsonpath='{.data.kubeconfig}' | base64 -d > /root/hc_admin_kubeconfig.yaml
    Copy to Clipboard Toggle word wrap
    $ export KUBECONFIG=/root/hc_admin_kubeconfig.yaml
    Copy to Clipboard Toggle word wrap
    $ watch "oc get clusterversion,nodes,co"
    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