5.3. OpenShift Virtualization에서 호스팅된 제어 평면 관리
OpenShift Virtualization에 호스팅된 클러스터를 배포한 후 다음 절차를 완료하여 클러스터를 관리할 수 있습니다.
5.3.1. 호스팅된 클러스터에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 클러스터에 액세스하려면 리소스에서 직접 kubeconfig
파일과 kubeadmin
자격 증명을 가져오거나 hcp
명령줄 인터페이스를 사용하여 kubeconfig
파일을 생성하면 됩니다.
사전 요구 사항
리소스에서 직접 kubeconfig
파일과 자격 증명을 가져와 호스팅된 클러스터에 액세스하려면 호스팅된 클러스터의 액세스 비밀을 알고 있어야 합니다. 호스팅 클러스터(호스팅) 네임스페이스에는 호스팅 클러스터 리소스와 액세스 비밀이 포함되어 있습니다. 호스팅된 제어 평면 네임스페이스는 호스팅된 제어 평면이 실행되는 곳입니다.
비밀 이름 형식은 다음과 같습니다.
-
kubeconfig
비밀:<hosted_cluster_namespace>-<name>-admin-kubeconfig
(클러스터-hypershift-demo-admin-kubeconfig) -
kubeadmin
비밀번호:<hosted_cluster_namespace>-<name>-kubeadmin-password
(클러스터-hypershift-demo-kubeadmin-password)
kubeconfig
비밀에는 Base64로 인코딩된 kubeconfig
필드가 포함되어 있으며, 이를 디코딩하여 다음 명령으로 파일에 저장하여 사용할 수 있습니다.
oc --kubeconfig <hosted_cluster_name>.kubeconfig get nodes
$ oc --kubeconfig <hosted_cluster_name>.kubeconfig get nodes
kubeadmin
비밀번호도 Base64로 인코딩되었습니다. 이를 디코딩하고 비밀번호를 사용하여 호스팅된 클러스터의 API 서버나 콘솔에 로그인할 수 있습니다.
프로세스
hcp
CLI를 사용하여kubeconfig
파일을 생성하여 호스팅된 클러스터에 액세스하려면 다음 단계를 따르세요.다음 명령을 입력하여
kubeconfig
파일을 생성합니다.hcp create kubeconfig --namespace <hosted_cluster_namespace> \ --name <hosted_cluster_name> > <hosted_cluster_name>.kubeconfig
$ hcp create kubeconfig --namespace <hosted_cluster_namespace> \ --name <hosted_cluster_name> > <hosted_cluster_name>.kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubeconfig
파일을 저장한 후 다음 예제 명령을 입력하여 호스팅된 클러스터에 액세스할 수 있습니다.oc --kubeconfig <hosted_cluster_name>.kubeconfig get nodes
$ oc --kubeconfig <hosted_cluster_name>.kubeconfig get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.2. 호스팅된 클러스터에 대한 노드 자동 크기 조정 활성화 링크 복사링크가 클립보드에 복사되었습니다!
호스팅된 클러스터에 더 많은 용량이 필요하고 예비 에이전트를 사용할 수 있는 경우 자동 크기 조정을 활성화하여 새로운 워커 노드를 설치할 수 있습니다.
프로세스
자동 크기 조정을 활성화하려면 다음 명령을 입력하세요.
oc -n <hosted_cluster_namespace> patch nodepool <hosted_cluster_name> \ --type=json \ -p '[{"op": "remove", "path": "/spec/replicas"},{"op":"add", "path": "/spec/autoScaling", "value": { "max": 5, "min": 2 }}]'
$ oc -n <hosted_cluster_namespace> patch nodepool <hosted_cluster_name> \ --type=json \ -p '[{"op": "remove", "path": "/spec/replicas"},{"op":"add", "path": "/spec/autoScaling", "value": { "max": 5, "min": 2 }}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 예에서 노드의 최소 개수는 2개이고, 최대 개수는 5개입니다. 추가할 수 있는 노드의 최대 수는 플랫폼에 따라 제한될 수 있습니다. 예를 들어, Agent 플랫폼을 사용하는 경우 최대 노드 수는 사용 가능한 Agent 수에 따라 제한됩니다.
새로운 노드가 필요한 작업 부하를 만듭니다.
다음 예를 사용하여 워크로드 구성을 포함하는 YAML 파일을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
파일을
workload-config.yaml
로 저장합니다. 다음 명령을 입력하여 YAML을 적용합니다.
oc apply -f workload-config.yaml
$ oc apply -f workload-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 입력하여
admin-kubeconfig
비밀번호를 추출합니다.oc extract -n <hosted_cluster_namespace> \ secret/<hosted_cluster_name>-admin-kubeconfig \ --to=./hostedcluster-secrets --confirm
$ oc extract -n <hosted_cluster_namespace> \ secret/<hosted_cluster_name>-admin-kubeconfig \ --to=./hostedcluster-secrets --confirm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
hostedcluster-secrets/kubeconfig
hostedcluster-secrets/kubeconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 새 노드가
준비
상태인지 확인할 수 있습니다.oc --kubeconfig ./hostedcluster-secrets get nodes
$ oc --kubeconfig ./hostedcluster-secrets get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드를 제거하려면 다음 명령을 입력하여 작업 부하를 삭제하세요.
oc --kubeconfig ./hostedcluster-secrets -n <namespace> \ delete deployment <deployment_name>
$ oc --kubeconfig ./hostedcluster-secrets -n <namespace> \ delete deployment <deployment_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 추가 용량이 필요하지 않을 때까지 몇 분간 기다리세요. Agent 플랫폼에서는 Agent가 폐기되고 재사용될 수 있습니다. 다음 명령을 입력하면 노드가 제거되었는지 확인할 수 있습니다.
oc --kubeconfig ./hostedcluster-secrets get nodes
$ oc --kubeconfig ./hostedcluster-secrets get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고IBM Z® 에이전트의 경우 PR/SM(Processor Resource/Systems Manager) 모드에서 OSA 네트워크 장치를 사용하는 경우 자동 크기 조정이 지원되지 않습니다. 축소 프로세스 중에 새 에이전트가 합류하므로 기존 에이전트를 수동으로 삭제하고 노드 풀을 확장해야 합니다.
5.3.3. OpenShift Virtualization에서 호스팅된 제어 평면에 대한 스토리지 구성 링크 복사링크가 클립보드에 복사되었습니다!
고급 스토리지 구성을 제공하지 않으면 KubeVirt 가상 머신(VM) 이미지, KubeVirt 컨테이너 스토리지 인터페이스(CSI) 매핑 및 etcd 볼륨에 기본 스토리지 클래스가 사용됩니다.
다음 표는 호스팅 클러스터에서 영구 저장소를 지원하기 위해 인프라가 제공해야 하는 기능을 나열합니다.
인프라 CSI 제공업체 | 호스팅 클러스터 CSI 공급자 | 호스팅 클러스터 기능 |
---|---|---|
모든 RWX |
|
|
모든 RWX | Red Hat OpenShift Data Foundation |
Red Hat OpenShift Data Foundation 기능 세트. 외부 모드는 차지하는 공간이 더 작고 독립형 Red Hat Ceph Storage를 사용합니다. 내부 모드는 차지하는 공간이 더 크지만 독립적이고 RWX |
OpenShift Virtualization은 호스팅된 클러스터의 스토리지를 처리하며, 특히 블록 스토리지에 대한 요구 사항이 제한적인 고객에게 도움이 됩니다.
5.3.3.1. KubeVirt CSI 스토리지 클래스 매핑 링크 복사링크가 클립보드에 복사되었습니다!
KubeVirt CSI는 ReadWriteMany
(RWX) 액세스가 가능한 인프라 스토리지 클래스 매핑을 지원합니다. 클러스터를 생성하는 동안 인프라 스토리지 클래스를 호스팅된 스토리지 클래스에 매핑할 수 있습니다.
프로세스
인프라 스토리지 클래스를 호스팅된 스토리지 클래스에 매핑하려면 다음 명령을 실행하여
--infra-storage-class-mapping
인수를 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 호스팅된 클러스터의 이름을 지정합니다(예:
)
. - 2
- 작업자 수를 지정합니다(예:
2
). - 3
- 예를 들어
/user/name/pullsecret 과
같이 풀 시크릿의 경로를 지정합니다. - 4
- 예를 들어
8Gi
와 같이 메모리 값을 지정합니다. - 5
- 예를 들어 CPU에
2와 같은
값을 지정합니다. - 6
<infrastructure_storage_class>를
인프라 스토리지 클래스 이름으로,<hosted_storage_class>를
호스팅된 클러스터 스토리지 클래스 이름으로 바꿉니다.hcp create cluster
명령 내에서--infra-storage-class-mapping
인수를 여러 번 사용할 수 있습니다.
호스팅 클러스터를 생성한 후에는 호스팅 클러스터 내에서 인프라 스토리지 클래스가 표시됩니다. 해당 스토리지 클래스 중 하나를 사용하는 호스팅된 클러스터 내에서 영구 볼륨 클레임(PVC)을 생성하면 KubeVirt CSI는 클러스터 생성 중에 구성한 인프라 스토리지 클래스 매핑을 사용하여 해당 볼륨을 프로비저닝합니다.
KubeVirt CSI는 RWX 액세스가 가능한 인프라 스토리지 클래스만 매핑을 지원합니다.
다음 표는 볼륨 및 액세스 모드 기능이 KubeVirt CSI 스토리지 클래스에 어떻게 매핑되는지 보여줍니다.
인프라 CSI 기능 | 호스팅 클러스터 CSI 기능 | VM 라이브 마이그레이션 지원 | 참고 |
---|---|---|---|
RWX: |
| 지원됨 |
|
RWO |
RWO | 지원되지 않음 | 라이브 마이그레이션 지원이 부족하면 KubeVirt VM을 호스팅하는 기본 인프라 클러스터를 업데이트하는 기능에 영향을 미칩니다. |
RWO |
RWO | 지원되지 않음 |
라이브 마이그레이션 지원이 부족하면 KubeVirt VM을 호스팅하는 기본 인프라 클러스터를 업데이트하는 기능에 영향을 미칩니다. 인프라 |
5.3.3.2. 단일 KubeVirt CSI 볼륨 스냅샷 클래스 매핑 링크 복사링크가 클립보드에 복사되었습니다!
KubeVirt CSI를 사용하면 인프라 볼륨 스냅샷 클래스를 호스팅된 클러스터에 노출할 수 있습니다.
프로세스
호스팅된 클러스터에 볼륨 스냅샷 클래스를 매핑하려면 호스팅된 클러스터를 생성할 때
--infra-volumesnapshot-class-mapping
인수를 사용합니다. 다음 명령을 실행합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 호스팅된 클러스터의 이름을 지정합니다(예:
)
. - 2
- 작업자 수를 지정합니다(예:
2
). - 3
- 예를 들어
/user/name/pullsecret 과
같이 풀 시크릿의 경로를 지정합니다. - 4
- 예를 들어
8Gi
와 같이 메모리 값을 지정합니다. - 5
- 예를 들어 CPU에
2와 같은
값을 지정합니다. - 6
<infrastructure_storage_class>를
인프라 클러스터에 있는 스토리지 클래스로 바꿉니다.<hosted_storage_class>를
호스팅 클러스터에 있는 스토리지 클래스로 바꾸세요.- 7
<infrastructure_volume_snapshot_class>를
인프라 클러스터에 있는 볼륨 스냅샷 클래스로 바꿉니다.<hosted_volume_snapshot_class>를
호스팅된 클러스터에 있는 볼륨 스냅샷 클래스로 바꿉니다.
참고--infra-storage-class-mapping
및--infra-volumesnapshot-class-mapping
인수를 사용하지 않으면 기본 스토리지 클래스와 볼륨 스냅샷 클래스를 사용하여 호스팅된 클러스터가 생성됩니다. 따라서 인프라 클러스터에서 기본 저장소 클래스와 볼륨 스냅샷 클래스를 설정해야 합니다.
5.3.3.3. 여러 KubeVirt CSI 볼륨 스냅샷 클래스 매핑 링크 복사링크가 클립보드에 복사되었습니다!
특정 그룹에 할당하여 여러 볼륨 스냅샷 클래스를 호스팅된 클러스터에 매핑할 수 있습니다. 인프라 스토리지 클래스와 볼륨 스냅샷 클래스는 동일한 그룹에 속하는 경우에만 서로 호환됩니다.
프로세스
호스팅된 클러스터에 여러 볼륨 스냅샷 클래스를 매핑하려면 호스팅된 클러스터를 생성할 때
그룹
옵션을 사용합니다. 다음 명령을 실행합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 호스팅된 클러스터의 이름을 지정합니다(예:
)
. - 2
- 작업자 수를 지정합니다(예:
2
). - 3
- 예를 들어
/user/name/pullsecret 과
같이 풀 시크릿의 경로를 지정합니다. - 4
- 예를 들어
8Gi
와 같이 메모리 값을 지정합니다. - 5
- 예를 들어 CPU에
2와 같은
값을 지정합니다. - 6
<infrastructure_storage_class>를
인프라 클러스터에 있는 스토리지 클래스로 바꿉니다.<hosted_storage_class>를
호스팅 클러스터에 있는 스토리지 클래스로 바꾸세요.<그룹_이름>을
그룹 이름으로 바꾸세요. 예를 들어,infra-storage-class-mygroup/hosted-storage-class-mygroup,group=mygroup
및infra-storage-class-mymap/hosted-storage-class-mymap,group=mymap입니다
.- 7
<infrastructure_volume_snapshot_class>를
인프라 클러스터에 있는 볼륨 스냅샷 클래스로 바꿉니다.<hosted_volume_snapshot_class>를
호스팅된 클러스터에 있는 볼륨 스냅샷 클래스로 바꿉니다. 예를 들어,infra-vol-snap-mygroup/hosted-vol-snap-mygroup,group=mygroup
및infra-vol-snap-mymap/hosted-vol-snap-mymap,group=mymap입니다
.
5.3.3.4. KubeVirt VM 루트 볼륨 구성 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 생성 시 --root-volume-storage-class
인수를 사용하여 KubeVirt VM 루트 볼륨을 호스팅하는 데 사용되는 스토리지 클래스를 구성할 수 있습니다.
프로세스
KubeVirt VM에 대한 사용자 지정 스토리지 클래스와 볼륨 크기를 설정하려면 다음 명령을 실행하세요.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 결과적으로 PVC에 호스팅된 VM으로 생성된 호스팅 클러스터를 얻게 됩니다.
5.3.3.5. KubeVirt VM 이미지 캐싱 활성화 링크 복사링크가 클립보드에 복사되었습니다!
KubeVirt VM 이미지 캐싱을 사용하면 클러스터 시작 시간과 스토리지 사용량을 모두 최적화할 수 있습니다. KubeVirt VM 이미지 캐싱은 스마트 복제와 ReadWriteMany
액세스 모드가 가능한 스토리지 클래스 사용을 지원합니다. 스마트 클로닝에 대한 자세한 내용은 스마트 클로닝을 사용하여 데이터 볼륨 복제를 참조하세요.
이미지 캐싱은 다음과 같이 작동합니다.
- VM 이미지는 호스팅된 클러스터와 연결된 PVC로 가져옵니다.
- 클러스터에 작업자 노드로 추가된 모든 KubeVirt VM에 대해 해당 PVC의 고유한 복제본이 생성됩니다.
이미지 캐싱은 단 하나의 이미지 가져오기만 요구하므로 VM 시작 시간을 줄여줍니다. 스토리지 클래스가 복사-쓰기 복제를 지원하는 경우 전체 클러스터 스토리지 사용량을 더욱 줄일 수 있습니다.
프로세스
클러스터를 생성하는 동안 이미지 캐싱을 활성화하려면 다음 명령을 실행하여
--root-volume-cache-strategy=PVC
인수를 사용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.3.6. KubeVirt CSI 스토리지 보안 및 격리 링크 복사링크가 클립보드에 복사되었습니다!
KubeVirt 컨테이너 스토리지 인터페이스(CSI)는 기본 인프라 클러스터의 스토리지 기능을 호스팅된 클러스터로 확장합니다. CSI 드라이버는 다음과 같은 보안 제약 조건을 사용하여 인프라 스토리지 클래스와 호스팅 클러스터에 대한 안전하고 격리된 액세스를 보장합니다.
- 호스팅된 클러스터의 저장소는 다른 호스팅된 클러스터와 격리됩니다.
- 호스팅된 클러스터의 워커 노드는 인프라 클러스터에 대한 직접적인 API 액세스 권한이 없습니다. 호스팅된 클러스터는 제어된 KubeVirt CSI 인터페이스를 통해서만 인프라 클러스터에 스토리지를 프로비저닝할 수 있습니다.
- 호스팅된 클러스터는 KubeVirt CSI 클러스터 컨트롤러에 액세스할 수 없습니다. 결과적으로 호스팅된 클러스터는 호스팅된 클러스터와 연결되지 않은 인프라 클러스터의 임의의 스토리지 볼륨에 액세스할 수 없습니다. KubeVirt CSI 클러스터 컨트롤러는 호스팅된 제어 평면 네임스페이스의 포드에서 실행됩니다.
- KubeVirt CSI 클러스터 컨트롤러의 역할 기반 액세스 제어(RBAC)는 영구 볼륨 클레임(PVC) 액세스를 호스팅된 제어 평면 네임스페이스로만 제한합니다. 따라서 KubeVirt CSI 구성 요소는 다른 네임스페이스의 저장소에 액세스할 수 없습니다.
5.3.3.7. etcd 스토리지 구성 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 생성 시 --etcd-storage-class
인수를 사용하여 etcd 데이터를 호스팅하는 데 사용되는 스토리지 클래스를 구성할 수 있습니다.
프로세스
etcd에 대한 스토리지 클래스를 구성하려면 다음 명령을 실행하세요.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.4. hcp CLI를 사용하여 NVIDIA GPU 장치 연결 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Virtualization에서 호스팅된 클러스터의 hcp
명령줄 인터페이스(CLI)를 사용하여 하나 이상의 NVIDIA 그래픽 처리 장치(GPU) 장치를 노드 풀에 연결할 수 있습니다.
NVIDIA GPU 장치를 노드 풀에 연결하는 것은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
- GPU 장치가 있는 노드에서 NVIDIA GPU 장치를 리소스로 노출했습니다. 자세한 내용은 OpenShift 가상화를 지원하는 NVIDIA GPU Operator를 참조하세요.
- 노드 풀에 할당하기 위해 NVIDIA GPU 장치를 노드의 확장 리소스 로 노출했습니다.
프로세스
다음 명령을 실행하여 클러스터 생성 중에 GPU 장치를 노드 풀에 연결할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 호스팅된 클러스터의 이름을 지정합니다(예:
)
. - 2
- 예를 들어
3과
같이 작업자 수를 지정합니다. - 3
- 예를 들어
/user/name/pullsecret 과
같이 풀 시크릿의 경로를 지정합니다. - 4
- 예를 들어
16Gi
와 같이 메모리 값을 지정합니다. - 5
- 예를 들어 CPU에
2와 같은
값을 지정합니다. - 6
- GPU 장치 이름과 개수를 지정합니다(예:
--host-device-name="nvidia-a100,count:2")
.--host-device-name
인수는 인프라 노드의 GPU 장치 이름과 노드 풀의 각 가상 머신(VM)에 연결하려는 GPU 장치 수를 나타내는 선택적 개수를 사용합니다. 기본 개수는1
입니다. 예를 들어, 2개의 GPU 장치를 3개의 노드 풀 복제본에 연결하면 노드 풀에 있는 3개의 VM이 모두 2개의 GPU 장치에 연결됩니다.
작은 정보--host-device-name
인수를 여러 번 사용하여 다양한 유형의 여러 장치를 연결할 수 있습니다.
5.3.5. NodePool 리소스를 사용하여 NVIDIA GPU 장치 연결 링크 복사링크가 클립보드에 복사되었습니다!
NodePool
리소스에서 nodepool.spec.platform.kubevirt.hostDevices
필드를 구성하여 하나 이상의 NVIDIA 그래픽 처리 장치(GPU) 장치를 노드 풀에 연결할 수 있습니다.
NVIDIA GPU 장치를 노드 풀에 연결하는 것은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
프로세스
하나 이상의 GPU 장치를 노드 풀에 연결합니다.
단일 GPU 장치를 연결하려면 다음 예제 구성을 사용하여
NodePool
리소스를 구성하세요.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 호스팅된 클러스터의 이름을 지정합니다(예:
)
. - 2
- 호스팅된 클러스터 네임스페이스의 이름을 지정합니다(예:
clusters )
. - 3
- 예를 들어 CPU에
2와 같은
값을 지정합니다. - 4
- 예를 들어
16Gi
와 같이 메모리 값을 지정합니다. - 5
hostDevices
필드는 노드 풀에 연결할 수 있는 다양한 유형의 GPU 장치 목록을 정의합니다.- 6
- 노드 풀의 각 가상 머신(VM)에 연결할 GPU 장치 수를 지정합니다. 예를 들어, 2개의 GPU 장치를 3개의 노드 풀 복제본에 연결하면 노드 풀에 있는 3개의 VM이 모두 2개의 GPU 장치에 연결됩니다. 기본 개수는
1
입니다. - 7
- GPU 장치 이름을 지정합니다(예:
nvidia-a100 )
. - 8
- 예를 들어
3과
같이 작업자 수를 지정합니다.
여러 GPU 장치를 연결하려면 다음 예제 구성을 사용하여
NodePool
리소스를 구성하세요.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3.6. topologySpreadConstraint를 사용하여 노드 풀 VM 확산 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 노드 풀에서 생성된 KubeVirt 가상 머신(VM)은 VM을 실행할 수 있는 용량이 있는 모든 사용 가능한 노드에 예약됩니다. 기본적으로 topologySpreadConstraint
제약 조건은 여러 노드에서 VM을 예약하도록 설정됩니다.
일부 시나리오에서는 노드 풀 VM이 동일한 노드에서 실행될 수 있으며, 이로 인해 가용성 문제가 발생할 수 있습니다. 단일 노드에 VM이 분산되는 것을 방지하려면 descheduler를 사용하여 topologySpreadConstraint
제약 조건을 지속적으로 준수하여 VM을 여러 노드에 분산합니다.
사전 요구 사항
- Kube Descheduler Operator를 설치했습니다. 자세한 내용은 "디스케줄러 설치"를 참조하세요.
프로세스
다음 명령을 입력하여
KubeDescheduler
사용자 지정 리소스(CR)를 열고KubeDescheduler
CR을 수정하여SoftTopologyAndDuplicates
및DevKubeVirtRelieveAndMigrate
프로필을 사용하여topologySpreadConstraint
제약 조건 설정을 유지합니다.KubeDescheduler
CR이라는 이름의클러스터는
openshift-kube-descheduler-operator
네임스페이스에서 실행됩니다.oc edit kubedescheduler cluster -n openshift-kube-descheduler-operator
$ oc edit kubedescheduler cluster -n openshift-kube-descheduler-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KubeDescheduler
구성 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow