在日常研(yan)發測試過程中,經常會(hui)遇(yu)到資源開(kai)通(tong)失(shi)(shi)敗的情況,最常見(jian)的就是虛(xu)機(ji)(ji)開(kai)通(tong)啟動失(shi)(shi)敗。本文(wen)主(zhu)要針對虛(xu)機(ji)(ji)開(kai)通(tong)失(shi)(shi)敗的場(chang)景,如(ru)何使用(yong)Lens工具(ju)進(jin)行(xing)排查(cha)定位原(yuan)因。
前(qian)提
- 先下載安裝Lens客戶端
- 在Lens上配置對應集群的kubeconfig文件,連接到集群
排查(cha)過程
步(bu)驟(zou)1、發現有(you)一臺虛(xu)機開通失(shi)敗(bai),一直處于啟動中(zhong)

步(bu)驟2、在Lens查看該(gai)虛機所在的Namespace,如果已知(zhi)Namespace,可跳(tiao)過(guo)該(gai)步(bu)驟直接進入步(bu)驟3
- 打開Lens,連接到對應集群
- 進入Custom Resources -> kubevirt.io -> Virtual Machine
- 在右上角輸入虛機ID,即可查到對應的Namespace,此例為:evm-1518

步(bu)驟3、在Lens上(shang)查找到對應的(de)pod
- Lens進入 Workloads -> Pods
- 輸入步驟2查到的Namespace
- 根據相應信息找到對應的pod

步(bu)(bu)驟(zou)4、查看(kan)pod日志,若是處于pengding狀(zhuang)態(tai)跳過這(zhe)一(yi)步(bu)(bu),進入步(bu)(bu)驟(zou)5
- 點擊對應pod右側的更多按鈕,打開Logs
- 根據logs信息繼續排查,比如這個案例中的日志表明問題跟磁盤有關。

步驟(zou)5:如果pod一直處(chu)于Pending狀態(tai),也就沒(mei)有log可看(kan),可查看(kan)warming信息(xi)
- 掛起(Pending):API Server創建了pod資源對象已存入etcd中,但它尚未被調度完成,或者仍處于從倉庫下載鏡像的過程中。
- 點擊虛機warming標志,查看warming信息,案例中信息表明沒有可用節點可調度,如圖5.1
- 可到Custom Resources -> kubevirt.io -> Virtual Machine查看該虛機的模版,查看虛機被調度到哪個節點,如圖5.2
- 然后到集群查看對應節點狀態,如圖5.3;
- 此時可以判定是因為被調度到的節點有故障導致虛機無法正常啟動。
圖5.1

圖5.2

圖5.3
