kubernetes 来自服务器(BadRequest)的错误:查找对象密钥字符串开头的字符“% s”无效

s8vozzvw  于 4个月前  发布在  Kubernetes
关注(0)|答案(3)|浏览(85)

我是新来的k8s和需要一些帮助,plz。
我想在pod的部署配置中进行更改,并将readOnlyRootFilesource更改为false。
这就是我正在尝试做的,但似乎不起作用。请建议错误:

kubectl patch deployment eric-ran-rdm-singlepod -n vdu -o yaml -p {"spec":{"template":{"spec":{"containers":[{"name":"eric-ran-rdm-infra":{"securityContext":[{"readOnlyRootFilesystem":"true"}]}}]}}}}

字符串
enter image description here
非常感谢!

fwzugrvs

fwzugrvs1#

您的JSON无效。您需要确保您提供的是有效的JSON,并且它也应该在k8s API定义的正确结构中。您可以使用jsonlint.com

{
    "spec": {
        "template": {
            "spec": {
                "containers": [
                    {
                        "name": "eric-ran-rdm-infra",
                        "securityContext": {
                            "readOnlyRootFilesystem": "true"
                        }
                    }
                ]
            }
        }
    }
}

字符串
注意事项:我这里只检查了语法,没有对照这里这个JSON的k8s API检查/测试结构,但我觉得应该是对的,错了请指正。
.yaml文件中指定部署并使用kubectl apply -f my_deployment.yaml应用部署可能更容易。

yqkkidmi

yqkkidmi2#

首先,您应该按照**@Mushroomator的建议修复您的JSON语法问题**

{
    "spec": {
        "template": {
            "spec": {
                "containers": [
                    {
                        "name": "eric-ran-rdm-infra",
                        "securityContext": {
                            "readOnlyRootFilesystem": "true"
                        }
                    }
                ]
            }
        }
    }
}

字符串
然后,JSON也应该在双引号前用转义字符指定。
如下所示:

kubectl patch deployment eric-ran-rdm-singlepod -n vdu -o yaml -p {\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\": \"eric-ran-rdm-infra\",\"securityContext\":{\"readOnlyRootFilesystem\":\"true\"}}]}}}}

f8rj6qna

f8rj6qna3#

在windows中,你需要在命令的双引号前加上一个反斜杠。

kubectl patch cronjob/zoo-pc-route-cost-job -p '{\"spec\": {\"suspend\": false}}'

字符串

相关问题