3.7. 확인된 문제
- 단일 스택 IPv6 클러스터에서는 OpenShift Virtualization을 실행할 수 없습니다. (BZ#2193267)
다른 SELinux 컨텍스트가 있는 두 개의 Pod를 사용하면
ocs-storagecluster-cephfs
스토리지 클래스가 있는 VM이 마이그레이션되지 않고 VM 상태가일시 중지됨으로
변경됩니다. 두 Pod 모두 공유ReadWriteMany
CephFS 볼륨에 동시에 액세스하려고 하기 때문입니다. (BZ#2092271)-
이 문제를 해결하려면
ocs-storagecluster-ceph-rbd
스토리지 클래스를 사용하여 Red Hat Ceph Storage를 사용하는 클러스터에서 VM을 실시간 마이그레이션합니다.
-
이 문제를 해결하려면
OpenShift Virtualization 4.10.5로 업데이트하면 일부 VM(가상 머신)이 실시간 마이그레이션 루프에 고정됩니다. 이는 VM 매니페스트의
spec.volumes.containerDisk.path
필드가 상대 경로로 설정된 경우 발생합니다.-
이 문제를 해결하려면 VM 매니페스트를 삭제하고 재생성하여
spec.volumes.containerDisk.path
필드의 값을 절대 경로로 설정합니다. 그런 다음 OpenShift Virtualization을 업데이트할 수 있습니다.
-
이 문제를 해결하려면 VM 매니페스트를 삭제하고 재생성하여
단일 노드에 50개 이상의 이미지가 포함된 경우 노드 간에 Pod 스케줄링이 분배될 수 있습니다. 이는 노드의 이미지 목록이 기본적으로 50으로 단축되기 때문입니다. (BZ#1984442)
-
이 문제를 해결하려면
KubeletConfig
오브젝트를 편집하고nodeStatusMaxImages
의 값을-1
로 설정하여 이미지 제한을 비활성화할 수 있습니다.
-
이 문제를 해결하려면
노드에 42자를 초과하는 정규화된 도메인 이름(FQDN)이 있는 클러스터에 hostpath 프로비전 프로그램을 배포하는 경우 프로비전 프로그램이 PVC를 바인딩하지 못합니다. (BZ#2057157)
오류 메시지의 예
E0222 17:52:54.088950 1 reflector.go:138] k8s.io/client-go/informers/factory.go:134: Failed to watch *v1beta1.CSIStorageCapacity: failed to list *v1beta1.CSIStorageCapacity: unable to parse requirement: values[0][csi.storage.k8s.io/managed-by]: Invalid value: "external-provisioner-<node_FQDN>": must be no more than 63 characters 1
- 1
- 오류 메시지는 최대 63자까지 참조하지만 여기에는 노드의 FQDN 접두사가 붙은
external-provisioner-
문자열이 포함됩니다.
해결방법은 다음 명령을 실행하여 hostpath 프로비저너 CSI 드라이버에서
storageCapacity
옵션을 비활성화합니다.$ oc patch csidriver kubevirt.io.hostpath-provisioner --type merge --patch '{"spec": {"storageCapacity": false}}'
OpenShift Container Platform 클러스터에서 OVN-Kubernetes를 기본 CNI(Container Network Interface) 공급자로 사용하는 경우 OVN-Kubernetes의 호스트 네트워크 토폴로지 변경으로 인해 Linux 브리지 또는 본딩 장치를 호스트의 기본 인터페이스에 연결할 수 없습니다. (BZ#1885605)
- 해결 방법으로 호스트에 연결된 보조 네트워크 인터페이스를 사용하거나 OpenShift SDN 기본 CNI 공급자로 전환할 수 있습니다.
실시간으로 마이그레이션할 수 없는 가상 머신을 실행하면 OpenShift Container Platform 클러스터 업그레이드가 차단될 수 있습니다. 여기에는 hostpath 프로비전 프로그램 스토리지 또는 SR-IOV 네트워크 인터페이스를 사용하는 가상 머신이 포함됩니다.
해결 방법으로 클러스터를 업그레이드하는 동안 전원이 꺼지도록 가상 머신을 재구성할 수 있습니다. 가상 머신 구성 파일의
spec
섹션에서 다음을 수행합니다.evictionStrategy
및runStrategy
필드를 수정합니다.-
evictionStrategy: LiveMigrate
필드를 제거합니다. 제거 전략을 구성하는 방법에 대한 자세한 내용은 가상 머신 제거 전략 구성을 참조하십시오. -
runStrategy
필드를Always
로 설정합니다.
-
다음 명령을 실행하여 기본 CPU 모델을 설정합니다.
참고실시간 마이그레이션을 지원하는 가상 머신을 시작하기 전에 이러한 변경을 수행해야 합니다.
$ oc annotate --overwrite -n openshift-cnv hyperconverged kubevirt-hyperconverged kubevirt.kubevirt.io/jsonpatch='[ { "op": "add", "path": "/spec/configuration/cpuModel", "value": "<cpu_model>" 1 } ]'
- 1
<cpu_model>
을 실제 CPU 모델 값으로 바꿉니다. 모든 노드에 대해oc describe node <node>
를 실행한 후cpu-model-<name>
라벨에서 이 값을 확인할 수 있습니다. 모든 노드에 존재하는 CPU 모델을 선택합니다.
Red Hat Ceph Storage 또는 Red Hat OpenShift Data Foundation Storage를 사용하는 경우 한 번에 100개 이상의 VM을 복제하지 못할 수 있습니다. (BZ#1989527)
이 문제를 해결하려면 스토리지 프로필 매니페스트에
spec.cloneStrategy: copy
를 설정하여 호스트 지원 사본을 수행할 수 있습니다. 예를 들면 다음과 같습니다.apiVersion: cdi.kubevirt.io/v1beta1 kind: StorageProfile metadata: name: <provisioner_class> # ... spec: claimPropertySets: - accessModes: - ReadWriteOnce volumeMode: Filesystem cloneStrategy: copy 1 status: provisioner: <provisioner> storageClass: <provisioner_class>
- 1
- 기본 복제 방법은
copy
.
경우에 따라 여러 가상 머신에서 동일한 PVC를 읽기-쓰기 모드로 마운트할 수 있으므로 데이터가 손상될 수 있습니다. (BZ#1992753)
- 이 문제를 해결하려면 여러 VM에서 읽기-쓰기 모드에서 단일 PVC를 사용하지 마십시오.
Pod PDB(Disruption Budget)를 사용하면 Pod가 조정 가능한 가상 머신 이미지의 중단을 방지할 수 있습니다. PDB에서 Pod 중단을 탐지하면
openshift-monitoring
은LiveMigrate
제거 전략을 사용하는 가상 머신 이미지에 대해 60분마다PodDisruptionBudgetAtLimit
경고를 보냅니다. (BZ#2026733)- 해결 방법으로 경고가 지연 됩니다.
대규모 클러스터에서 OpenShift Virtualization MAC 풀 관리자는 부팅하는 데 시간이 너무 오래 걸릴 수 있으며 OpenShift Virtualization이 준비되지 않을 수 있습니다. (BZ#2035344)
이 문제를 해결하려면 MAC 풀링 기능이 필요하지 않은 경우 다음 명령을 실행하여 이 하위 구성 요소를 비활성화합니다.
$ oc annotate --overwrite -n openshift-cnv hco kubevirt-hyperconverged 'networkaddonsconfigs.kubevirt.io/jsonpatch=[ { "op": "replace" "path": "/spec/kubeMacPool" "value": null } ]'
OpenShift Virtualization은 Pod에서 사용하는 서비스 계정 토큰을 해당 특정 Pod에 연결합니다. OpenShift Virtualization은 토큰이 포함된 디스크 이미지를 생성하여 서비스 계정 볼륨을 구현합니다. VM을 마이그레이션하면 서비스 계정 볼륨이 유효하지 않습니다. (BZ#2037611)
- 이 문제를 해결하려면 사용자 계정 토큰이 특정 Pod에 바인딩되지 않으므로 서비스 계정이 아닌 사용자 계정을 사용하십시오.
- 종료 중에 VM이 충돌하거나 중단되면 새 종료 요청이 VM을 중지하지 않습니다. (BZ#2040766)
드라이버를 설치하기 전에 중재된 장치를 활성화하도록
HyperConverged
CR(사용자 정의 리소스)을 구성하는 경우 중재 장치 사용이 발생하지 않습니다. 이 문제는 업데이트를 통해 트리거할 수 있습니다. 예를 들어 NVIDIA 드라이버를 설치하는daemonset
앞에virt-handler
가 업데이트되면 노드는 가상 머신 GPU를 제공할 수 없습니다. (BZ#2046298)해결 방법으로 다음을 수행합니다.
-
HyperConverged
CR에서mediatedDevicesConfiguration
및permittedHostDevices
를 제거합니다. -
사용하려는 구성으로
mediatedDevicesConfiguration
및permittedHostDevices
스탠자를 모두 업데이트합니다.
-
- VM 마법사의 YAML 예는 하드 코딩되며 항상 최신 업스트림 변경 사항이 포함되지는 않습니다. (BZ#2055492)
csi-clone
복제 전략을 사용하여 100개 이상의 VM을 복제하면 Ceph CSI가 복제본을 제거하지 못할 수 있습니다. 복제본 수동 삭제도 실패할 수 있습니다. (BZ#2055595)-
이 문제를 해결하려면
ceph-mgr
을 다시 시작하여 VM 복제를 삭제할 수 있습니다.
-
이 문제를 해결하려면
권한이 없는 사용자는
VM
네트워크 인터페이스 탭에서 네트워크 인터페이스 추가 버튼을 사용할 수 없습니다. (BZ#2056420)- 이 문제를 해결하려면 권한이 없는 사용자가 VM 마법사를 사용하여 VM을 생성하는 동안 추가 네트워크 인터페이스를 추가할 수 있습니다.
권한이 없는 사용자는 RBAC 규칙으로 인해 VM에 디스크를 추가할 수 없습니다. (BZ#2056421)
- 이 문제를 해결하려면 특정 사용자가 디스크를 추가할 수 있도록 RBAC 규칙을 수동으로 추가합니다.
웹 콘솔에는 사용자 정의 네임스페이스에 배포된 가상 머신 템플릿이 표시되지 않습니다. 웹 콘솔의 기본 네임스페이스에 배포된 템플릿만 표시합니다. (BZ#2054650)
- 이 문제를 해결하려면 사용자 정의 네임스페이스에 템플릿을 배포하지 마십시오.
SNO(Single Node OpenShift) 클러스터에서 VMI에
spec.evictionStrategy
필드가LiveMigrate
로 설정된 경우 클러스터 업데이트가 실패합니다. 실시간 마이그레이션이 성공하려면 클러스터에 작업자 노드가 두 개 이상 있어야 합니다. (BZ#2073880)두 가지 해결 방법이 있습니다.
-
VM 선언에서
spec.evictionStrategy
필드를 제거합니다. - OpenShift Container Platform을 업데이트하기 전에 VM을 수동으로 중지합니다.
-
VM 선언에서