在日常研发测试过程中,经常会遇到资源开通失败的情况,最常见的就是虚机开通启动失败。本文主要针对虚机开通失败的场景,如何使用Lens工具进行排查定位原因。
前提
- 先下载安装Lens客户端
- 在Lens上配置对应集群的kubeconfig文件,连接到集群
排查过程
步骤1、发现有一台虚机开通失败,一直处于启动中
步骤2、在Lens查看该虚机所在的Namespace,如果已知Namespace,可跳过该步骤直接进入步骤3
- 打开Lens,连接到对应集群
- 进入Custom Resources -> kubevirt.io -> Virtual Machine
- 在右上角输入虚机ID,即可查到对应的Namespace,此例为:evm-1518
步骤3、在Lens上查找到对应的pod
- Lens进入 Workloads -> Pods
- 输入步骤2查到的Namespace
- 根据相应信息找到对应的pod
步骤4、查看pod日志,若是处于pengding状态跳过这一步,进入步骤5
- 点击对应pod右侧的更多按钮,打开Logs
- 根据logs信息继续排查,比如这个案例中的日志表明问题跟磁盘有关。
步骤5:如果pod一直处于Pending状态,也就没有log可看,可查看warming信息
- 挂起(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