You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OracleVM下Ubuntu虚拟机创建Kubernetes Pod失败,求问题排查

问题排查步骤

针对你在Ubuntu虚拟机中创建Nginx Pod失败的问题,按以下步骤逐一排查:

1. 确认Kubernetes集群状态

  • 先检查集群节点是否就绪:

    kubectl get nodes
    

    如果节点状态不是Ready,说明集群未正常搭建。刚接触K8s时,常见疏漏是只安装了kubectl,但缺失kubeadm、kubelet或容器运行时(如containerd、Docker),或者初始化集群时未部署网络插件。

  • 若节点状态为NotReady,查看kubelet日志定位具体错误:

    journalctl -u kubelet -f
    

    高频问题包括:容器运行时未安装/未启动、网络插件(如Flannel、Calico)未部署、虚拟机内存不足(建议分配至少2GB内存)。

2. 查看Pod的详细错误日志

执行命令获取Pod的事件记录,这是定位创建失败原因的核心依据:

kubectl describe pod <你的Pod名称>

重点关注Events区域:

  • 若提示Failed to pull image:测试虚拟机外网连通性,或手动拉取镜像验证:docker pull nginx(使用Docker作为容器运行时的情况)。
  • 若出现Host network error相关提示:检查虚拟机网络配置,确保虚拟机能正常联网,同时确认Kubernetes网络组件(如kube-proxy)运行正常。

3. 验证虚拟机的虚拟化支持

Oracle VM中的Ubuntu虚拟机必须开启嵌套虚拟化,否则容器运行时无法正常工作:

  • 在Oracle VM的虚拟机设置中,找到「处理器」选项,勾选「启用嵌套VT-x/AMD-V」。
  • 重启虚拟机后,验证虚拟化是否生效:
    grep -E '(vmx|svm)' /proc/cpuinfo
    
    有输出则说明虚拟化已开启。

4. 重新核对集群初始化流程

如果是刚搭建集群,确保按标准步骤操作:

  1. 安装容器运行时(如containerd)并配置systemd驱动。
  2. 安装kubeadm、kubelet、kubectl工具。
  3. 用kubeadm init初始化控制平面,随后部署网络插件。
  4. 单节点集群需允许控制平面调度Pod:kubectl taint nodes --all node-role.kubernetes.io/control-plane-。

内容的提问来源于stack exchange,提问作者Darshna Das

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:30:57