6.2. 연결이 끊긴 환경에서 OpenShift Virtualization에 호스팅된 제어 평면 배포


연결이 끊긴 환경에서 호스팅된 제어 평면을 배포하는 경우 일부 단계는 사용하는 플랫폼에 따라 다릅니다. 다음 절차는 OpenShift Virtualization에서의 배포에만 적용됩니다.

6.2.1. 사전 요구 사항

  • 관리 클러스터 역할을 하는 연결이 끊긴 OpenShift Container Platform 환경이 있습니다.
  • 이미지를 미러링할 내부 레지스트리가 있습니다. 자세한 내용은 연결이 끊긴 설치 미러링에 대한 정보를 참조하세요.

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

다음 절차에서는 ImageSetConfiguration 객체를 사용하는 바이너리인 oc-mirror 도구를 사용합니다. 파일에서 다음 정보를 지정할 수 있습니다.

  • 미러링할 OpenShift 컨테이너 플랫폼 버전입니다. 해당 버전은 quay.io 에 있습니다.
  • 미러링할 추가 연산자입니다. 패키지를 개별적으로 선택하세요.
  • 저장소에 추가하려는 추가 이미지입니다.

사전 요구 사항

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

프로세스

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

  1. 미러링할 레지스트리와 이미지를 푸시할 개인 레지스트리로 ${HOME}/.docker/config.json 파일이 업데이트되었는지 확인하세요.
  2. 다음 예제를 사용하여 미러링에 사용할 ImageSetConfiguration 객체를 만듭니다. 필요에 따라 값을 환경과 일치하도록 바꾸세요.

    apiVersion: mirror.openshift.io/v2alpha1
    kind: ImageSetConfiguration
    mirror:
      platform:
        channels:
        - name: candidate-4.19
          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.19
        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
    <4.xy-build>를 사용하려는 지원되는 OpenShift Container Platform 버전으로 바꾸세요.
    3
    KubeVirt 공급자의 Red Hat Enterprise Linux CoreOS(RHCOS) 부팅 이미지에 대한 컨테이너 디스크 이미지도 미러링하려면 이 선택적 플래그를 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

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

  4. 다음과 같이 imagesetconfig.yaml 파일을 구성하여 OpenShift Container Platform의 야간 버전이나 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
    <4.xy-build>를 사용하려는 지원되는 OpenShift Container Platform 버전으로 바꾸세요.
    2
    KubeVirt 공급자의 Red Hat Enterprise Linux CoreOS(RHCOS) 부팅 이미지에 대한 컨테이너 디스크 이미지도 미러링하려면 이 선택적 플래그를 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 모드를 사용하면 OLM 카탈로그에 사용되는 이미지 스트림이 관리 클러스터의 ICSP에서 제공하는 재정의 정보로 자동으로 수정되지 않습니다.

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

      • 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 업데이트를 가져와야 합니다.

다음 단계

연결이 끊긴 호스팅 제어 평면 설치에 대한 멀티클러스터 엔진 연산자 배포의 단계를 완료하여 멀티클러스터 엔진 연산자 를 배포합니다.

Kubernetes Operator용 멀티클러스터 엔진은 공급업체 전반에 클러스터를 배포하는 데 중요한 역할을 합니다. 멀티클러스터 엔진 Operator가 설치되어 있지 않은 경우 다음 문서를 검토하여 설치에 필요한 전제 조건과 단계를 파악하세요.

6.2.5. 호스팅된 제어 평면의 연결이 끊긴 설치를 위한 TLS 인증서 구성

연결이 끊긴 배포에서 적절한 기능을 보장하려면 관리 클러스터와 호스팅된 클러스터의 작업자 노드에서 레지스트리 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
    데이터 필드에 레지스트리 이름과 레지스트리 인증서 내용을 지정합니다. <포트>를 레지스트리 서버가 실행 중인 포트로 바꾸세요. 예: 5000 .
    4
    다른 방법(예: | - ) 대신 | 만 사용하여 구성 맵의 데이터가 정의되어 있는지 확인하세요. 다른 방법을 사용하면 포드가 인증서를 읽을 때 문제가 발생할 수 있습니다.
  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에 호스팅된 제어 평면을 배포할 준비를 할 때 다음 정보를 고려하세요.

  • 베어메탈에서 관리 클러스터를 실행합니다.
  • 호스팅된 각 클러스터에는 클러스터 전체에서 고유한 이름이 있어야 합니다.
  • 호스팅된 클러스터 이름으로 클러스터를 사용하지 마세요.
  • 멀티클러스터 엔진 운영자가 관리하는 클러스터의 네임스페이스에는 호스팅된 클러스터를 만들 수 없습니다.
  • 호스팅된 제어 평면에 대한 스토리지를 구성할 때 권장되는 etcd 사례를 고려하세요. 지연 시간 요구 사항을 충족하려면 각 제어 평면 노드에서 실행되는 모든 호스팅된 제어 평면 etcd 인스턴스에 빠른 스토리지 장치를 전용으로 지정하세요. LVM 스토리지를 사용하여 호스팅된 etcd 포드에 대한 로컬 스토리지 클래스를 구성할 수 있습니다. 자세한 내용은 "권장되는 etcd 사례" 및 "논리 볼륨 관리자 스토리지를 사용한 영구 스토리지"를 참조하세요.

6.2.6.2. CLI를 사용하여 KubeVirt 플랫폼으로 호스팅 클러스터 만들기

호스트된 클러스터를 생성하려면 호스트된 컨트롤 플레인 명령줄 인터페이스인 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
    예를 들어 lvm-storageclass 와 같이 etcd 스토리지 클래스 이름을 지정합니다.
    참고

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

    <4.x.0>을 사용하려는 지원되는 OpenShift Container Platform 버전으로 바꾸세요.

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

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

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

결과적으로, guest 라는 이름의 KubeVirt 호스팅 클러스터가 해당 기본 OpenShift Container Platform 클러스터에서 실행되면 다음과 같은 기본 수신이 발생합니다.

*.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 레코드 및 로드 밸런서를 구성해야 하므로 부분적 상태로 유지됩니다.

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

    $ 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

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

    $ 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. 다음 명령을 입력하여 로드 밸런서 서비스를 생성합니다.

    oc apply -f -
    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 노드 포트 값을 지정합니다.
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

  3. 다음 명령을 입력하여 호스팅 클러스터 상태가 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