【发布时间】:2021-03-31 23:59:11
【问题描述】:
我是 Kubernetes 的新手,我正在尝试将 nodejs 服务部署到 kubernetes。为此,我创建了一个 docker 映像并将其上传到 dockerhub,最后我创建了一个部署文件,其中包含所有必需的配置以完成部署。
部署文件如上所示。然后我执行了命令'kubectl apply -f deployment_local.yaml',我遇到了这个错误:"*spec.template.metadata.labels:Invalid value map[string]string{"app":"nodejs\u00a0\u00a0 "}:selector 不匹配模板labels"
我正在尝试修复这个错误,但我无法修复它。请帮助理解这个错误,因为我很努力。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nodejs-deployment
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: nodejs
template:
metadata:
labels:
app: nodejs
spec:
containers:
- name: nodeapp
image: lucasseabra/nodejs-starter
---
apiVersion: v1
kind: Service
metadata:
name: nodejs-entrypoint
namespace: default
spec:
type: NodePort
selector:
app: nodejs
ports:
- port: 3000
targetPort: 3000
nodePort: 30001
【问题讨论】:
-
只是粘贴错误,还是您完全没有为您的部署提及
apiVersion? -
对不起,这是一个粘贴错误,因为我有那行。谢谢你
-
您是否有任何现有的同名部署(nodejs-deployment)?
-
不,经过一番研究后,我提示“kubectl get svc”,它出现了 2 个服务。一个是kubernetes,一个是nodejs-entrypoint
-
无法重现错误,它对我有用。你的环境可能有问题。运行
kubectl delete -f deployment_local.yaml一次,然后尝试再次申请。
标签: node.js kubernetes deployment