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

为何执行kubectl get deployments显示default命名空间无资源,但已有Pod运行?

为什么kubectl get deployments显示无资源,但Pod已经在运行?

嘿,这个问题我之前也踩过坑,其实是Kubernetes里kubectl run命令的行为变化导致的,完全不是bug哦~

核心原因:新版本K8s中kubectl run的默认行为变了

在Kubernetes 1.18及以后的版本,kubectl run命令默认只会直接创建单个独立Pod,不再自动生成Deployment来管理Pod了。而在更早的版本(比如1.17及之前),这个命令会自动创建Deployment,通过Deployment来管控Pod的生命周期。

你执行的命令:

kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080

在当前的K8s版本下,只会生成一个独立Pod,所以kubectl get pod能看到运行中的资源,但kubectl get deployments自然找不到对应的Deployment资源。

验证方法

你可以执行以下命令查看Pod的详细信息,确认它没有关联的Deployment控制器:

kubectl describe pod hello-minikube

在输出的Controlled By字段里,你会看到它没有关联任何Deployment,是直接由用户创建的独立Pod。

如果想要用Deployment管理Pod

如果你希望用Deployment来管理这个Pod(比如实现自动重启、扩缩容等功能),推荐使用更明确的命令:

  1. 创建Deployment:
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
  1. 暴露端口(和你之前的--port参数效果一致):
kubectl expose deployment hello-minikube --port=8080

这时候再执行kubectl get deployments,就能看到对应的Deployment资源了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:32:53