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

s8vozzvw  于 2024-01-07  发布在  Kubernetes
关注(0)|答案(3)|浏览(213)

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

  1. 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

  1. {
  2. "spec": {
  3. "template": {
  4. "spec": {
  5. "containers": [
  6. {
  7. "name": "eric-ran-rdm-infra",
  8. "securityContext": {
  9. "readOnlyRootFilesystem": "true"
  10. }
  11. }
  12. ]
  13. }
  14. }
  15. }
  16. }

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

展开查看全部
yqkkidmi

yqkkidmi2#

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

  1. {
  2. "spec": {
  3. "template": {
  4. "spec": {
  5. "containers": [
  6. {
  7. "name": "eric-ran-rdm-infra",
  8. "securityContext": {
  9. "readOnlyRootFilesystem": "true"
  10. }
  11. }
  12. ]
  13. }
  14. }
  15. }
  16. }

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

  1. 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中,你需要在命令的双引号前加上一个反斜杠。

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

字符串

相关问题