태그: #kubevirt
GPU·LLM·MLOps·쿠버네티스, 그리고 마음가짐에 관한 글 · 23 편
KubeVirt GPU 패스스루 VM은 왜 112일간 스케줄되지 못했나 — 실제 클러스터 부검
Rust 오퍼레이터가 "GPU 노드 4개 전부 NotReady"라는 진단을 내린 뒤, 그 죽음의 원인을 실제 8노드 클러스터(GPU Operator v25.3.0, KubeVirt v1.7.0)에서 끝까지 추적했습니다. gpu-fedora와 rhel9-gpu-vm이 112일간 ErrorUnschedulable로 멈춰 있던 진짜 이유는 화려한 GPU 설정이 아니라 kubelet 한 줄 에러 —
2026-07-11 · 8 분 읽기 #kubevirt#gpu#kubernetes#nvidia#devopsGPU Operator × KubeVirt 총정리 — 구성요소·설정·버전, 부분 MIG와 수동 MIG까지
쿠버네티스 GPU 인프라의 두 기둥을 한 장에 정리합니다. GPU Operator의 오퍼랜드 구성과 ClusterPolicy 설정, 버전 체계와 함께, 노드의 일부 GPU에만 MIG를 적용하는 커스텀 설정과 nvidia-smi로 MIG를 수동 생성·삭제하는 방법을 다루고, VM을 쿠버네티스에서 돌리는 KubeVirt의 4대 컴포넌트(virt-operator·controller·handler·
2026-07-09 · 14 분 읽기 #kubernetes#gpu#kubevirt#mig#nvidiavirt-handler deep dive: kubelet 옆의 VM 노드 에이전트는 무엇을 하는가
virt-handler가 왜 노드별 DaemonSet으로 배치되며, launcher Pod와 libvirt domain 사이를 어떻게 연결하고 네트워크, 스토리지, 상태 보고를 수행하는지 분석한다.
2026-03-20 · 9 분 읽기 #architecture#kubevirt#kubernetes#virt-handler#virtualization디스크와 볼륨은 어떻게 VM에 붙는가
container disk, PVC, DataVolume, hostDisk, hotplug volume이 KubeVirt에서 어떤 준비 과정을 거쳐 guest 디스크로 연결되는지 소스 기준으로 정리한다.
2026-03-20 · 9 분 읽기 #architecture#kubevirt#storage#pvc#datavolumeSELinux, seccomp, device access: KubeVirt의 보안 경계는 어떻게 유지되는가
KubeVirt가 SELinux, seccomp, cgroup device rule, privileged helper를 어떻게 조합해 VM 실행과 보안 경계를 동시에 유지하는지 내부 코드 기준으로 분석한다.
2026-03-20 · 11 분 읽기 #architecture#kubevirt#security#selinux#seccompMultus와 secondary network는 KubeVirt에서 어떻게 연결되는가
KubeVirt가 NetworkAttachmentDefinition, Multus annotation, interface status 업데이트를 활용해 secondary network를 VMI에 연결하는 방식을 설명한다.
2026-03-20 · 8 분 읽기 #architecture#kubevirt#multus#cni#networkingLive Migration 1: migration CRD에서 target Pod 생성까지
VirtualMachineInstanceMigration 객체가 생성된 뒤 virt-controller가 정책, 용량, 타임아웃, target Pod 생성을 어떻게 조율하는지 control plane 관점에서 설명한다.
2026-03-20 · 9 분 읽기 #architecture#kubevirt#live-migration#controller#kubernetesEviction, drain, migration failure modes: KubeVirt는 실패를 어떻게 처리하는가
KubeVirt가 node drain, eviction, live migration 실패, post-copy irrecoverable 상태, non-migratable 조건을 어떤 상태 필드와 코드 경로로 처리하는지 분석한다.
2026-03-20 · 10 분 읽기 #architecture#kubevirt#migration#eviction#drainVMI spec가 libvirt domain XML로 변환되는 과정
KubeVirt의 converter가 VMI spec를 어떻게 libvirt domain spec와 XML로 바꾸며, 그 과정에서 디스크, NIC, CPU, 보안 옵션이 어떻게 재해석되는지 설명한다.
2026-03-20 · 9 분 읽기 #architecture#kubevirt#libvirt#qemu#domain-xmlvirt-controller deep dive: informer, queue, reconcile로 VM Pod를 만드는 법
virt-controller가 VMI, Pod, PVC, migration 등을 감시하며 launcher Pod를 만들고 상태를 전파하는 방식을 informer와 reconcile 관점에서 해부한다.
2026-03-20 · 9 분 읽기 #architecture#kubevirt#kubernetes#controller#reconciliationVMI status, metrics, guest agent, debugging: KubeVirt는 내부 상태를 어떻게 드러내는가
KubeVirt가 VMI status, guest agent, domain stats, Prometheus metrics, virt-handler API를 통해 VM 내부 상태를 어떻게 수집하고 노출하는지 코드 기준으로 정리한다.
2026-03-20 · 10 분 읽기 #architecture#kubevirt#observability#metrics#guest-agentKubeVirt 네트워크 1: Pod 네트워크를 VM 네트워크로 바꾸는 기본 원리
KubeVirt가 Pod에 먼저 붙은 CNI 네트워크를 bridge, TAP, DHCP, NAT 레이어를 통해 guest NIC로 연결하는 원리와 IP 할당 모델을 설명한다.
2026-03-20 · 9 분 읽기 #architecture#kubevirt#kubernetes#cni#networkingLive Migration 3: migration proxy, 포트, TLS, 소켓은 왜 필요한가
KubeVirt가 live migration에서 source와 target launcher 사이에 migration proxy를 두는 이유와, 포트, Unix socket, TLS 경로를 어떻게 조합하는지 설명한다.
2026-03-20 · 8 분 읽기 #architecture#kubevirt#live-migration#networking#tlsKVM, cgroup, namespace, tap, netlink: KubeVirt가 기대는 커널 기술
KubeVirt가 Pod 위에서 VM을 구현할 수 있도록 받쳐 주는 리눅스 커널 기술인 KVM, cgroup, namespace, TAP, netlink, VFIO의 역할을 정리한다.
2026-03-20 · 8 분 읽기 #architecture#kubevirt#linux#kvm#cgroupsVM, VMI, Migration CRD는 각각 무엇을 표현하는가
KubeVirt의 핵심 API 타입인 VirtualMachine, VirtualMachineInstance, VirtualMachineInstanceMigration이 각각 어떤 책임을 가지며 왜 분리되어 있는지 소스 스키마 기준으로 설명한다.
2026-03-20 · 10 분 읽기 #architecture#kubevirt#kubernetes#virtualization#crdvirt-launcher, libvirt, QEMU: 실제 VM 프로세스는 어디서 어떻게 뜨는가
virt-launcher Pod 내부에서 command server, libvirt 연결, domain event monitor, guest agent poller가 어떻게 맞물리며 실제 QEMU 프로세스를 실행하는지 추적한다.
2026-03-20 · 9 분 읽기 #architecture#kubevirt#qemu#libvirt#virt-launcher사용자 요청이 VMI로 바뀌는 순간: virt-api와 admission 흐름
virt-api가 KubeVirt의 API 진입점으로서 어떤 검증, defaulting, subresource 처리, migration 요청 생성을 수행하는지 소스 코드 기준으로 정리한다.
2026-03-20 · 9 분 읽기 #architecture#kubevirt#kubernetes#virtualization#apiKubeVirt 소스코드 읽기 맵: 어디서부터 읽어야 전체 구조가 잡히는가
KubeVirt 소스코드를 API 타입, controller, node agent, launcher, network, migration, kernel integration 순서로 읽어 전체 구조를 빠르게 잡는 읽기 지도를 제안한다.
2026-03-20 · 10 분 읽기 #architecture#kubevirt#source-code#reading-map#kubernetesKubeVirt 네트워크 2: bridge, masquerade, passt, SR-IOV 바인딩 비교
KubeVirt의 주요 네트워크 바인딩인 bridge, masquerade, passt, SR-IOV가 각각 어떤 방식으로 guest NIC를 구성하며 성능, 연결성, migration 특성에서 어떻게 다른지 설명한다.
2026-03-20 · 9 분 읽기 #architecture#kubevirt#networking#multus#sriovLive Migration 2: pre-copy, post-copy, dirty page, auto-converge의 실제 의미
KubeVirt live migration의 실제 데이터 전송 단계에서 pre-copy, post-copy, dirty page, auto-converge, pause 전환이 어떤 의미를 가지는지 소스 코드 기준으로 설명한다.
2026-03-20 · 10 분 읽기 #architecture#kubevirt#live-migration#libvirt#qemu