k8s 选择器表达式中的引号重要吗?

Bob*_*har 1 kubernetes

我们已经签入了 YML 文件,其中包含我们的 k8s“部署描述符”(这些东西有更好的名称吗?)

我正在查看一个服务描述符,例如......

apiVersion: v1
kind: Service
metadata:
  name: regalia-service
  namespace: sem
spec:
  selector:
    app: "proxy"
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
Run Code Online (Sandbox Code Playgroud)

我查看了另一个执行基本相同操作的存储库,我注意到 spec.selector.app 值缺少引号。喜欢...

apiVersion: v1
kind: Service
metadata:
  name: scimitar-service
  namespace: sem
spec:
  selector:
    app: proxy
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
Run Code Online (Sandbox Code Playgroud)

认为这两个服务描述符正在做同样的事情,但我怎么知道

k8s 描述符中的引号重要吗?

这是 YML 的事情还是 k8s 的事情?

aci*_*uji 5

您可能已经发现,在 yaml 语法字符串中,值很少需要引号。如果该值被引号引起来,则它始终是一个字符串,如果不带引号,它将被检查为其他内容,但默认为字符串。

对于大多数字符串,您可以将它们不加引号,并且您已经发现,您将得到类似的结果。但在某些情况下,需要引号,例如string以某些特殊字符开头%#@#$或包含whitespace,或者值看起来像数字但实际上应该是字符串(例如45,truefalse

如需更多阅读,请查看这篇关于yaml 引用的博客文章。