Skip to content

🚀 進階功能測驗

1. KubeVirt Live Migration 預設採用哪種記憶體遷移算法?

  • A. Post-copy:先切換 VM 到目標節點,再按需補傳記憶體頁面
  • B. Pre-copy:在 VM 持續運行時逐步將記憶體複製到目標節點
  • C. Cold copy:停止 VM 後一次性複製所有記憶體
  • D. Delta-copy:只傳輸記憶體差異,不傳輸完整頁面

2. 在 pre-copy migration 中,若 VM 的記憶體 dirty rate 持續大於網路傳輸速率,應啟用哪個機制來強制讓 migration 收斂?

  • A. allowBlockMigration:允許磁碟同時遷移
  • B. allowPostCopy:切換至 post-copy 模式,先完成切換再補傳頁面
  • C. allowAutoConverge:自動降低 vCPU 速度以減少 dirty page 產生
  • D. unsafeMigrationOverride:強制跳過收斂等待直接完成

3. Post-copy migration 與 pre-copy migration 相比,最大的風險是什麼?

  • A. Post-copy 需要更多網路頻寬,可能影響 VM 業務流量
  • B. Post-copy 的 downtime 比 pre-copy 更長
  • C. Post-copy 進行中若來源節點或網路發生故障,目標節點的 VM 將立即 crash
  • D. Post-copy 無法與 MigrationPolicy 搭配使用

4. MigrationPolicy 中的 bandwidthPerMigration 設定為 "1Gi" 代表什麼含義?

  • A. 每次 migration 最多可傳輸 1 GiB 的總資料量
  • B. 每次 migration 的網路頻寬上限為每秒 1 GiB
  • C. migration 超時時間計算基準為每 GiB 1 秒
  • D. migration 所用的 PVC 最大容量為 1 GiB

5. KubeVirt 全域設定中,parallelOutboundMigrationsPerNode 預設值為何?

  • A. 1
  • B. 2
  • C. 5
  • D. 10

6. VMI 的 evictionStrategy 設定為 LiveMigrateIfPossible 時,若該 VMI 無法 Live Migrate,節點 drain 時會發生什麼?

  • A. drain 操作會失敗並回傳錯誤
  • B. VMI 會被直接刪除(驅逐)
  • C. VMI 繼續在原節點運行,忽略 drain 請求
  • D. VMI 會被暫停(Paused)等待手動處理

7. 使用 SR-IOV 網路的 VMI 嘗試進行 Live Migration 時,會出現什麼結果?

  • A. Migration 成功,但 SR-IOV 介面會被替換成 virtio 介面
  • B. Migration 會自動改用 block migration 模式進行
  • C. Migration 立即失敗,IsMigratable condition 為 False
  • D. Migration 進入 Pending 狀態等待使用者確認

8. Multifd(Multiple file descriptors)技術在 KubeVirt Live Migration 中的預設 channel 數量是多少?

  • A. 4 個
  • B. 8 個
  • C. 16 個
  • D. 32 個

9. KubeVirt Migration 狀態機中,哪個狀態表示已在目標節點建立 virt-launcher pod 並完成 QEMU migration channel 建立,即將開始記憶體傳輸?

  • A. Pending
  • B. PreparingTarget
  • C. TargetReady
  • D. Running

10. Migration 失敗後,來源節點上的 VM 狀態為何?

  • A. VM 被停止,需要手動重新啟動
  • B. VM 繼續在來源節點正常運行,服務不受影響
  • C. VM 進入 Paused 狀態等待管理員介入
  • D. VM 被刪除並重建在其他節點

11. 設定獨立 migration network 的主要目的是什麼?

  • A. 提供更高的安全加密,保護遷移資料不被竊取
  • B. 避免 migration 流量佔用 VM 業務網路,提升隔離性
  • C. 讓 migration 能突破 parallelOutboundMigrationsPerNode 的限制
  • D. 允許跨 VLAN 的 VM 進行 migration

12. 建立 Online Snapshot(線上快照)時,為確保資料一致性,KubeVirt 會透過 qemu-guest-agent 執行什麼操作?

  • A. 暫停 VM 的 vCPU 執行,確保記憶體靜止
  • B. 執行 fs-freeze 凍結 filesystem I/O,快照後再執行 fs-thaw 解凍
  • C. 將 VM 的記憶體內容完整寫入磁碟後再建立快照
  • D. 強制停止所有應用程式程序,快照後重新啟動

13. VirtualMachineSnapshot 的 status.indications 出現 NoGuestAgent 時,代表什麼情況?

  • A. 快照在 VM 停止狀態下建立,資料完全靜止
  • B. VM 沒有安裝 qemu-guest-agent,快照為 crash-consistent(崩潰一致性)
  • C. Guest agent 的 quiescing 超時,快照只完成了部分 flush
  • D. 快照在 VM 暫停(Paused)狀態下建立

14. KubeVirt 快照功能需要哪項 Kubernetes 基礎設施支援才能運作?

  • A. Kubernetes Admission Webhook 和 CRD 支援
  • B. CSI Driver 的 VolumeSnapshot 能力、snapshot-controller 以及 VolumeSnapshotClass
  • C. Persistent Volume 的 ReadWriteMany 存取模式
  • D. MetalLB 或其他 LoadBalancer 提供外部 IP

15. VirtualMachineSnapshot 建立後,KubeVirt 會自動建立哪個中間資源來儲存快照的實際內容?

  • A. VolumeSnapshotContent
  • B. VirtualMachineSnapshotContent
  • C. VirtualMachineBackup
  • D. PersistentVolumeSnapshotContent

16. 對 VM 執行 VirtualMachineRestore(還原操作)時,若 VM 當時正在運行,會發生什麼?

  • A. 還原操作會失敗,要求使用者先手動停止 VM
  • B. KubeVirt 會自動停止 VM,完成還原後再重新啟動
  • C. 還原操作會在 VM 運行中以 hot-swap 方式替換磁碟
  • D. 還原操作會建立新的 VM 而不影響現有運行中的 VM

17. 下列哪個情況下建議使用 Offline Snapshot 而非 Online Snapshot?

  • A. 需要每小時自動建立 checkpoint 的開發環境
  • B. 需要最高資料一致性保證的生產環境重要備份
  • C. 測試環境需要快速反覆還原至初始狀態
  • D. VM 必須持續提供服務不能停機的場景

18. KubeVirt 快照的 quiesceDeadlineSeconds 欄位超時後,快照建立流程會如何處理?

  • A. 快照建立失敗並回傳錯誤,不會保留任何資料
  • B. 繼續建立快照,但在 indications 中標記 QuiesceTimeout
  • C. 自動改為 Offline Snapshot 模式,先停止 VM
  • D. 等待使用者手動介入決定是否繼續

19. KubeVirt 透過哪個元件(component)向 Prometheus 暴露 VMI 層級的指標?

  • A. virt-api
  • B. virt-controller
  • C. virt-handler
  • D. virt-operator

20. Prometheus metric kubevirt_vmi_phase_count 的用途是什麼?

  • A. 記錄單一 VMI 在各 phase 停留的累計時間(秒)
  • B. 統計叢集中各 phase(如 Running、Pending)的 VMI 數量分佈
  • C. 記錄 VMI 發生 phase 轉換的事件次數
  • D. 追蹤 VMI 的 CPU 在各執行狀態的時間

21. kubevirt_vmi_vcpu_seconds_total 中的 state="steal" 代表什麼含義?

  • A. vCPU 正在執行 guest 的使用者態指令
  • B. vCPU 等待磁碟 I/O 完成的時間
  • C. hypervisor 拿走了原本應給 vCPU 的 host CPU 時間
  • D. vCPU 空閒並執行 HLT 省電指令的時間

22. kubevirt_vmi_memory_balloon_size_bytes 指標過高時代表什麼問題?

  • A. VM 的記憶體設定超過節點的實體記憶體,需要縮小 VM
  • B. Host 正在從 VM 回收記憶體,guest OS 可能面臨記憶體壓力
  • C. VM 的 huge pages 配置過大,影響其他 VM
  • D. VM 記憶體使用率過低,建議降低 VM 記憶體設定以節省資源

23. 以下哪個 PromQL 查詢可以判斷 migration 是否正在收斂?

  • A. kubevirt_vmi_migration_data_bytes / kubevirt_vmi_migration_data_processed
  • B. kubevirt_vmi_migration_transfer_rate - kubevirt_vmi_migration_dirty_memory_rate
  • C. rate(kubevirt_vmi_migration_succeeded[1h]) > 0
  • D. kubevirt_vmi_migrations_in_running_phase < kubevirt_vmi_migrations_in_pending_phase

24. 建立 ServiceMonitor 讓 Prometheus 抓取 KubeVirt metrics 時,需要與哪個 label 匹配以找到 KubeVirt 的 Service?

  • A. app.kubernetes.io/name: kubevirt
  • B. prometheus.kubevirt.io: \"\"(空字串)
  • C. kubevirt.io/component: metrics
  • D. monitoring.kubevirt.io/enabled: \"true\"

25. KubeVirt 官方 Grafana Dashboard 中,專門用於 migration 監控的 Dashboard ID 是什麼?

  • A. 11115
  • B. 11116
  • C. 11117
  • D. 11118

26. 哪個 Prometheus metric 用於監控 virt-controller 是否為當前的 leader?

  • A. kubevirt_virt_controller_ready
  • B. kubevirt_virt_controller_leading
  • C. kubevirt_virt_controller_active
  • D. kubevirt_virt_controller_elected

27. KubeVirtVirtHandlerDown 告警規則中,觸發條件 kubevirt_virt_handler_up == 0 持續多久才會發出告警?

  • A. 1 分鐘
  • B. 5 分鐘
  • C. 10 分鐘
  • D. 15 分鐘

28. kubevirt_vmi_non_evictable 指標追蹤的是哪類 VMI?

  • A. 當前正在進行 migration 的 VMI
  • B. 設定 evictionStrategy=None、無法被驅逐的 VMI 數量
  • C. 因資源不足而卡在 Pending 狀態的 VMI
  • D. 使用了 SR-IOV 或 PCI Passthrough 的 VMI

29. MigrationPolicy 的 completionTimeoutPerGiB 設定為 800 秒,若 VM 有 8 GiB 記憶體,總超時時間為多少秒?

  • A. 800 秒
  • B. 1600 秒
  • C. 6400 秒
  • D. 無法預測,取決於實際 dirty rate

30. 下列哪種儲存類型明確不支援 KubeVirt 的快照功能?

  • A. Ceph RBD (rook-ceph)
  • B. Longhorn
  • C. AWS EBS CSI
  • D. hostPath / local storage

基於 Apache 2.0 授權