Kubectl暴露Pod报错deployments.extensions未找到问题求助
解决Kubernetes "deployments.extensions not found" 错误及相关概念解析
先搞懂什么是 deployments.extensions
在你使用的Kubernetes 1.13版本里,Deployment资源属于extensions API组(格式就是资源类型.API组)。后来在1.16版本之后,Deployment被正式迁移到了apps API组,但在1.13这种旧版本中,两种API组的引用方式都能正常工作。所以这个deployments.extensions只是Kubernetes用来标识资源归属的标准格式,本身并不是问题所在。
你的报错根源
你执行暴露命令的时候犯了个小错误:用了Pod的名字去指定Deployment。从你的kubectl get pods输出看,hello-node-64c578bdf8-jp7dt是Pod的名称,但你的Deployment列表里对应的Deployment名字是hello-node(看kubectl get deployments的结果)。Kubernetes找不到叫hello-node-64c578bdf8-jp7dt的Deployment,自然就抛出NotFound错误了。
快速解决方法
把命令里的Deployment名字换成正确的hello-node就行:
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
如果你确实想直接暴露单个Pod(不推荐,因为Deployment能帮你管理Pod的副本和更新),也可以用Pod暴露命令:
kubectl expose pod hello-node-64c578bdf8-jp7dt --type=LoadBalancer --port=8080
内容的提问来源于stack exchange,提问作者Richard Rublev
相关产品推荐
相关产品推荐

