gpt4 book ai didi

json - kubectl 应用错误 : error converting YAML to JSON

转载 作者:行者123 更新时间:2023-12-01 00:46:32 25 4
gpt4 key购买 nike

kubectl apply -f . 之后收到此错误消息

error: error converting YAML to JSON: yaml: invalid map key: map[interface {}]interface {}{"include (print $.Template.BasePath \"/configmap.yaml\") . | sha256sum":interface {}(nil)}

我试过把 checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}在不同的地方,但我不太了解 YAML 或 JSON 来找出问题所在。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: demo
spec:
replicas: 1
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-config-env
ports:
- containerPort: 8888
env:
- name: GREETING
valueFrom:
configMapKeyRef:
name: demo-config
key: greeting
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}

我只是希望能够在配置更改时更新我的​​ pod。我应该 helm upgrade在这里某处,但我不确定要给出什么论据。

最佳答案

您不能使用 {{ ... }}语法与 kubectl apply .该语法通常与 Helm 匹配包管理器。在不知道应用模板语法的情况下,{ ... }看起来像 YAML 映射语法,解析器会感到困惑。
annotations:一般属于metadata: , 旁边 labels: . Annotations在 Kubernetes 文档中阅读可能很有用。

I just want to be able to update my pods without restarting them.



Kubernetes 不是这样工作的,只有一些非常有限的异常(exception)。

如果你只讨论配置数据而不是代码,你可以 Add ConfigMap data to a Volume ;那么如果 ConfigMap 发生变化,pod 看到的文件也会发生变化。您遇到的语法实际上是一种在 ConfigMap 数据更改时强制 pod 重新启动的解决方法:它与您要尝试的相反,您应该删除这两行。

对于例行代码更改,标准路径是构建并推送新的 Docker 镜像,然后使用新的镜像标签更新您的部署对象。 (它必须是与之前不同的图像标签字符串,仅仅推送具有相同标签的新图像是不够的。)然后 Kubernetes 将自动使用新图像启动新的 pod,一旦这些启动,关闭 pod与旧图像。在某些情况下,Kubernetes 甚至可以自行删除和重新创建 Pod。

关于json - kubectl 应用错误 : error converting YAML to JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56943496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com