【问题标题】:The Deployment "nodejs-deployment" is invalid spec.template.metadata.labels: Invalid value部署“nodejs-deployment”无效 spec.template.metadata.labels:无效值
【发布时间】: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


【解决方案1】:

正如错误消息试图告诉你的那样,nodejs 之后有两个"non-breaking space" characters:map[string]string{"app":"nodejs\u00a0\u00a0"}

我猜这是从网页复制粘贴的副作用

如果您甚至在此处发布的问题上“全选”,您会看到 SO 已将这两个字符转换为普通空格,但它们确实显示在“nodejs”文本之后的选择扩展中

如果您的编辑器无法向您显示字符,请手动重新输入标签,或尝试复制此标签(这只是您的,但删除了尾随空格)

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

【讨论】:

  • 谢谢你!你描述的问题已经结束了,我及时使用了一个代码......非常感谢你:D
猜你喜欢
  • 2018-07-12
  • 2020-05-27
  • 2021-04-23
  • 1970-01-01
  • 2019-01-19
  • 2022-09-25
  • 2011-08-28
  • 2023-01-24
  • 1970-01-01
相关资源
最近更新 更多