15.4. OpenShift Virtualization에서 호스팅된 클러스터 문제 해결


OpenShift Virtualization에서 호스팅된 클러스터의 문제를 해결할 때는 최상위 HostedClusterNodePool 리소스부터 시작한 다음 근본 원인을 찾을 때까지 스택을 따라 작업합니다. 다음 단계를 따르면 일반적인 문제의 근본 원인을 발견하는 데 도움이 됩니다.

15.4.1. HostedCluster 리소스가 부분 상태에 갇혔습니다.

호스팅된 제어 평면이 HostedCluster 리소스가 보류 중이어서 완전히 온라인 상태가 되지 않는 경우, 필수 구성 요소, 리소스 조건, 노드 및 운영자 상태를 확인하여 문제를 파악합니다.

프로세스

  • OpenShift Virtualization에서 호스팅된 클러스터에 대한 모든 전제 조건을 충족하는지 확인하세요.
  • 진행을 방해하는 검증 오류에 대한 HostedClusterNodePool 리소스의 조건을 확인합니다.
  • 호스팅된 클러스터의 kubeconfig 파일을 사용하여 호스팅된 클러스터의 상태를 검사합니다.

    • oc get clusteroperators 명령의 출력을 보고 보류 중인 클러스터 운영자가 무엇인지 확인하세요.
    • oc get nodes 명령의 출력을 보고 작업자 노드가 준비되었는지 확인하세요.

15.4.2. 등록된 작업자 노드가 없습니다.

호스팅된 제어 평면에 등록된 작업자 노드가 없어 호스팅된 제어 평면이 완전히 온라인 상태가 되지 않는 경우, 호스팅된 제어 평면의 다양한 부분의 상태를 확인하여 문제를 파악합니다.

프로세스

  • 문제가 무엇인지 알려주는 HostedClusterNodePool 조건을 확인하세요.
  • NodePool 리소스에 대한 KubeVirt 워커 노드 가상 머신(VM) 상태를 보려면 다음 명령을 입력하세요.

    $ oc get vm -n <namespace>
    Copy to Clipboard Toggle word wrap
  • VM이 프로비저닝 상태에 갇힌 경우 다음 명령을 입력하여 VM 네임스페이스 내의 CDI 가져오기 포드를 보고 가져오기 포드가 완료되지 않은 이유에 대한 단서를 확인하세요.

    $ oc get pods -n <namespace> | grep "import"
    Copy to Clipboard Toggle word wrap
  • VM이 시작 상태에 멈춘 경우 다음 명령을 입력하여 virt-launcher 포드의 상태를 확인하세요.

    $ oc get pods -n <namespace> -l kubevirt.io=virt-launcher
    Copy to Clipboard Toggle word wrap

    virt-launcher 포드가 보류 상태인 경우 포드가 예약되지 않는 이유를 조사하세요. 예를 들어, virt-launcher 포드를 실행하기에 충분한 리소스가 없을 수 있습니다.

  • VM이 실행 중이지만 작업자 노드로 등록되지 않은 경우 웹 콘솔을 사용하여 영향을 받는 VM 중 하나에 VNC 액세스 권한을 얻으세요. VNC 출력은 점화 구성이 적용되었는지 여부를 나타냅니다. VM이 시작 시 호스팅된 제어 평면 점화 서버에 액세스할 수 없는 경우 VM을 올바르게 프로비저닝할 수 없습니다.
  • 점화 구성이 적용되었지만 VM이 여전히 노드로 등록되지 않는 경우 문제 식별: VM 콘솔 로그에 액세스를 참조하여 시작 중에 VM 콘솔 로그에 액세스하는 방법을 알아보세요.

15.4.3. 작업자 노드가 NotReady 상태에 갇혔습니다.

클러스터를 생성하는 동안, 네트워킹 스택이 롤아웃되는 동안 노드는 일시적으로 NotReady 상태로 전환됩니다. 이 과정의 일부는 정상적입니다. 하지만 이 프로세스의 이 부분이 15분 이상 걸리는 경우 노드 객체와 포드를 조사하여 문제를 파악하세요.

프로세스

  1. 다음 명령을 입력하여 노드 개체의 조건을 보고 노드가 준비되지 않은 이유를 확인하세요.

    $ oc get nodes -o yaml
    Copy to Clipboard Toggle word wrap
  2. 클러스터 내에서 실패한 포드를 찾으려면 다음 명령을 입력하세요.

    $ oc get pods -A --field-selector=status.phase!=Running,status,phase!=Succeeded
    Copy to Clipboard Toggle word wrap

Ingress 및 콘솔 클러스터 운영자가 온라인 상태가 아니어서 호스팅된 제어 평면이 완전히 온라인 상태가 되지 않는 경우 와일드카드 DNS 경로와 로드 밸런서를 확인하세요.

프로세스

  • 클러스터가 기본 Ingress 동작을 사용하는 경우 다음 명령을 입력하여 가상 머신(VM)이 호스팅되는 OpenShift Container Platform 클러스터에서 와일드카드 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
  • 호스팅된 제어 평면에 사용자 지정 기본 도메인을 사용하는 경우 다음 단계를 완료하세요.

    • 로드 밸런서가 VM 포드를 올바르게 타겟팅하고 있는지 확인하세요.
    • 와일드카드 DNS 항목이 로드 밸런서 IP 주소를 대상으로 하는지 확인하세요.

로드 밸런서 서비스를 사용할 수 없게 되어 호스팅된 제어 평면이 완전히 온라인 상태가 되지 않는 경우 이벤트, 세부 정보 및 Kubernetes 클러스터 구성 관리자(KCCM) 포드를 확인하세요.

프로세스

  • 호스팅된 클러스터 내의 로드 밸런서 서비스와 관련된 이벤트와 세부 정보를 찾아보세요.
  • 기본적으로 호스팅된 클러스터의 로드 밸런서는 호스팅된 제어 평면 네임스페이스 내의 kubevirt-cloud-controller-manager에 의해 처리됩니다. KCCM Pod가 온라인 상태인지 확인하고 오류나 경고가 있는지 로그를 확인하세요. 호스팅된 제어 평면 네임스페이스에서 KCCM Pod를 식별하려면 다음 명령을 입력하세요.

    $ oc get pods -n <hosted_control_plane_namespace> \
      -l app=cloud-controller-manager
    Copy to Clipboard Toggle word wrap

15.4.6. 호스팅된 클러스터 PVC를 사용할 수 없습니다.

호스팅된 클러스터의 영구 볼륨 클레임(PVC)을 사용할 수 없어 호스팅된 제어 평면이 완전히 온라인 상태가 되지 않는 경우 PVC 이벤트와 세부 정보, 구성 요소 로그를 확인하세요.

프로세스

  • PVC와 관련된 이벤트와 세부 정보를 찾아 어떤 오류가 발생하고 있는지 파악하세요.
  • PVC가 포드에 연결되지 않는 경우 호스팅된 클러스터 내의 kubevirt-csi-node 데몬셋 구성 요소에 대한 로그를 확인하여 문제를 자세히 조사하세요. 각 노드의 kubevirt-csi-node 포드를 식별하려면 다음 명령을 입력하세요.

    $ oc get pods -n openshift-cluster-csi-drivers -o wide \
      -l app=kubevirt-csi-driver
    Copy to Clipboard Toggle word wrap
  • PVC가 영구 볼륨(PV)에 바인딩할 수 없는 경우 호스팅된 제어 평면 네임스페이스 내의 kubevirt-csi-controller 구성 요소의 로그를 확인합니다. 호스팅된 제어 평면 네임스페이스 내에서 kubevirt-csi-controller 포드를 식별하려면 다음 명령을 입력하세요.

    $ oc get pods -n <hcp namespace> -l app=kubevirt-csi-driver
    Copy to Clipboard Toggle word wrap

15.4.7. VM 노드가 클러스터에 올바르게 가입하지 않습니다.

VM 노드가 클러스터에 올바르게 가입하지 않아 호스팅된 제어 평면이 완전히 온라인 상태가 되지 않는 경우 VM 콘솔 로그에 액세스하세요.

15.4.8. RHCOS 이미지 미러링 실패

연결이 끊긴 환경에서 OpenShift Virtualization의 호스팅된 제어 평면의 경우, oc-mirror는 Red Hat Enterprise Linux CoreOS(RHCOS) 이미지를 내부 레지스트리에 자동으로 미러링하지 못합니다. 처음으로 호스팅 클러스터를 만들면 Kubevirt 가상 머신이 부팅되지 않습니다. 이는 내부 레지스트리에서 부팅 이미지를 사용할 수 없기 때문입니다.

이 문제를 해결하려면 RHCOS 이미지를 수동으로 내부 레지스트리에 미러링합니다.

프로세스

  1. 다음 명령을 실행하여 내부 레지스트리 이름을 가져옵니다.

    $ oc get imagecontentsourcepolicy -o json \
      | jq -r '.items[].spec.repositoryDigestMirrors[0].mirrors[0]'
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 페이로드 이미지를 가져옵니다.

    $ oc get clusterversion version -ojsonpath='{.status.desired.image}'
    Copy to Clipboard Toggle word wrap
  3. 호스팅된 클러스터의 페이로드 이미지에서 부트 이미지가 포함된 0000_50_installer_coreos-bootimages.yaml 파일을 추출합니다. <payload_image>를 페이로드 이미지의 이름으로 바꾸세요. 다음 명령을 실행합니다.

    $ oc image extract \
      --file /release-manifests/0000_50_installer_coreos-bootimages.yaml \
      <payload_image> --confirm
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 실행하여 RHCOS 이미지를 가져옵니다.

    $ cat 0000_50_installer_coreos-bootimages.yaml | yq -r .data.stream \
      | jq -r '.architectures.x86_64.images.kubevirt."digest-ref"'
    Copy to Clipboard Toggle word wrap
  5. RHCOS 이미지를 내부 레지스트리로 미러링합니다. <rhcos_image>를 RHCOS 이미지로 바꾸세요. 예: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d9643ead36b1c026be664c9c65c11433c6cdf71bfd93ba229141d134a4a6dd94 . <internal_registry>를 내부 레지스트리 이름으로 바꾸세요. 예: virthost.ostest.test.metalkube.org:5000/localimages/ocp-v4.0-art-dev . 다음 명령을 실행합니다.

    $ oc image mirror <rhcos_image> <internal_registry>
    Copy to Clipboard Toggle word wrap
  6. ImageDigestMirrorSet 객체를 정의하는 rhcos-boot-kubevirt.yaml 이라는 YAML 파일을 만듭니다. 다음 예제 구성을 참조하세요.

    apiVersion: config.openshift.io/v1
    kind: ImageDigestMirrorSet
    metadata:
      name: rhcos-boot-kubevirt
    spec:
      repositoryDigestMirrors:
        - mirrors:
            - virthost.ostest.test.metalkube.org:5000/localimages/ocp-v4.0-art-dev 
    1
    
          source: quay.io/openshift-release-dev/ocp-v4.0-art-dev 
    2
    Copy to Clipboard Toggle word wrap
    1
    예를 들어 virthost.ostest.test.metalkube.org:5000/localimages/ocp-v4.0-art-dev 와 같이 내부 레지스트리 이름을 지정합니다.
    2
    예를 들어, quay.io/openshift-release-dev/ocp-v4.0-art-dev 와 같이 다이제스트 없이 RHCOS 이미지를 지정합니다.
  7. 다음 명령을 실행하여 rhcos-boot-kubevirt.yaml 파일을 적용하여 ImageDigestMirrorSet 객체를 생성합니다.

    $ oc apply -f rhcos-boot-kubevirt.yaml
    Copy to Clipboard Toggle word wrap

15.4.9. 베어메탈이 아닌 클러스터를 늦은 바인딩 풀로 반환합니다.

BareMetalHosts 없이 후기 바인딩 관리 클러스터를 사용하는 경우 후기 바인딩 클러스터를 삭제하고 노드를 Discovery ISO로 다시 반환하기 위해 추가 수동 단계를 완료해야 합니다.

BareMetalHosts가 없는 늦은 바인딩 관리 클러스터의 경우 클러스터 정보를 제거해도 모든 노드가 Discovery ISO로 자동으로 반환되지 않습니다.

프로세스

늦은 바인딩을 사용하여 베어메탈이 아닌 노드의 바인딩을 해제하려면 다음 단계를 완료하세요.

  1. 클러스터 정보를 제거합니다. 자세한 내용은 관리에서 클러스터 제거를 참조하세요.
  2. 루트 디스크를 정리합니다.
  3. Discovery ISO로 수동으로 재부팅합니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat