kubectl 补丁请求抛出“在此上下文中不允许映射值”

曼尼什·班萨尔

我正在尝试修补 kubernetes 部署对象的 liveness 和 readiness 探针参数。下面是我的patch.yml

--- 
spec: 
  template: 
    spec: 
      containers: 
        - 
          livenessProbe: 
            initialDelaySeconds: 280
          name: notification-service
          readinessProbe: 
            initialDelaySeconds: 220

要求:

kubectl -n my-namespace --kubeconfig=my_config --context=dev patch deployment notification-service --patch "$(cat patch.yml)"

回复:

kubectl : error: unable to parse "spec:   template:     spec:       containers:       - name: notification-service                 
readinessProbe:           initialDelaySeconds: 220         livenessProbe:           initialDelaySeconds: 280": yaml: mapping values are not allowed in this 
context
At line:1 char:1
+ kubectl -n my-namespace --kubeconfig=my_config --context=dev patch  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (error: unable t...in this context:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

编辑:下面是kubectl version命令的输出

Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.0", GitCommit:"fc32d2f3698e36b93322a3465f63a14e
9f0eaead", GitTreeState:"clean", BuildDate:"2018-03-26T16:55:54Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"wind
ows/386"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698
aa92f0b1", GitTreeState:"clean", BuildDate:"2019-02-28T13:30:26Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"lin
ux/amd64"}

是引发此错误的行。为了验证它,我尝试创建一个示例 go 程序。下面是代码片段。令我惊讶的是,下面的代码能够处理 yaml 文件。

package main

import (
    "fmt"
    "io/ioutil"
    //"sigs.k8s.io/yaml" // Part of latest master k8s master vendor folder
    yaml2 "github.com/ghodss/yaml" // Part of release 1.10 k8s vendor folder
)


func check(e error) {
    if e != nil {
        panic(e)
    }
}

func main(){
    dat, err := ioutil.ReadFile("D:\\EclipseIDEJavaEEDevelopers\\Workspace\\patch.yaml")
    check(err)
    patch:=string(dat)

    patchBytes, err1 := yaml2.YAMLToJSON([]byte(patch))

    if err != nil {
         fmt.Errorf("unable to parse %q: %v", dat, err1)
    }else{
        fmt.Println("json conversion completed ",string(patchBytes))
    }


}

输出:

json conversion completed  {"spec":{"template":{"spec":{"containers":[{"livenessProbe":{"initialDelaySeconds":280},"name":"notification-service","readinessProbe":{"initialDelaySeconds":220}}]}}}}
曼尼什·班萨尔

问题在于powershell命令替换周围的双引号。如果我们在 powershell 中在命令替换周围添加双引号,它会从 yml 中删除新行,因此 kubectl 无法将其转换为 json。

在 bash 中同样有效。因为,我使用的是 powershell,它对我不起作用。正确的命令如下。

kubectl -n my-namespace --kubeconfig=my_config --context=dev patch deployment notification-service --patch $(cat patch.yml)

注意: yml 仍然存在一些问题。所以当我说它有效时,我的意思是当前的问题已经解决。从 kubernetes 的角度来看,yml 有很多问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“存在YAML语法错误” ...“在此上下文中不允许使用映射值”

来自分类Dev

yaml文件问题“在此上下文中不允许使用映射值”

来自分类Dev

无效的 YAML:在此上下文中不允许映射值:网络:

来自分类Dev

为什么我在Ruby的YAML文件中得到'`parse':(<unknown>):在此上下文中不允许映射值'

来自分类Dev

为什么我在Ruby的YAML文件中得到'`parse':(<unknown>):在此上下文中不允许映射值'

来自分类Dev

yaml.scanner.ScannerError:在此上下文中不允许映射值(Python 黑盒测试帮助)

来自分类Dev

如何导出单个kubectl上下文?

来自分类Dev

kubectl如何重命名上下文

来自分类Dev

在此上下文中不允许使用表,视图或序列引用'SEQUENCE.NEXTVAL'

来自分类Dev

如何更正matlab错误:在此上下文中不允许使用函数定义

来自分类Dev

在此上下文中不允许元素管理作为元素跨度的子元素

来自分类Dev

闪亮文档 (HTML) 扫描仪错误:此上下文中不允许映射值

来自分类Dev

“在此上下文中不允许使用子查询。只允许使用标量表达式。”

来自分类Dev

kubectl如何列出所有上下文

来自分类Dev

RBAC:kubectl 配置使用上下文

来自分类Dev

Kubectl 补丁添加额外的“-”字符

来自分类Dev

在此上下文中,元素样式不允许作为元素主体的子元素(<style scoped>未验证)

来自分类Dev

HTML验证程序错误-在此上下文中,不允许将元素滑块作为元素主体的子级

来自分类Dev

元素 h3 在此上下文中不允许作为元素标签的子元素。[html]

来自分类Dev

在此上下文中不允许表、视图或序列引用“LN_GRAPH_PERC.DATE_RED”

来自分类Dev

环境上下文中不允许使用 Angular2 打字稿错误初始值设定项

来自分类Dev

kubectl补丁yaml文件不是资源对象

来自分类Dev

尝试切换上下文时出现Kubectl配置使用上下文错误

来自分类Dev

Kubernetes:如何从kubectl配置中删除集群和上下文?

来自分类Dev

Kubectl JSONPath表达式基于当前上下文获取cluster.server属性

来自分类Dev

禁用 kubectl config view --flatten 发生的上下文切换

来自分类Dev

kubectl命令找不到命名空间值

来自分类Dev

为什么Tokio返回错误“在不允许阻塞的上下文中不能删除运行时”?

来自分类Dev

使用kubectl补丁将卷添加到Kubernetes StatefulSet

Related 相关文章

  1. 1

    “存在YAML语法错误” ...“在此上下文中不允许使用映射值”

  2. 2

    yaml文件问题“在此上下文中不允许使用映射值”

  3. 3

    无效的 YAML:在此上下文中不允许映射值:网络:

  4. 4

    为什么我在Ruby的YAML文件中得到'`parse':(<unknown>):在此上下文中不允许映射值'

  5. 5

    为什么我在Ruby的YAML文件中得到'`parse':(<unknown>):在此上下文中不允许映射值'

  6. 6

    yaml.scanner.ScannerError:在此上下文中不允许映射值(Python 黑盒测试帮助)

  7. 7

    如何导出单个kubectl上下文?

  8. 8

    kubectl如何重命名上下文

  9. 9

    在此上下文中不允许使用表,视图或序列引用'SEQUENCE.NEXTVAL'

  10. 10

    如何更正matlab错误:在此上下文中不允许使用函数定义

  11. 11

    在此上下文中不允许元素管理作为元素跨度的子元素

  12. 12

    闪亮文档 (HTML) 扫描仪错误:此上下文中不允许映射值

  13. 13

    “在此上下文中不允许使用子查询。只允许使用标量表达式。”

  14. 14

    kubectl如何列出所有上下文

  15. 15

    RBAC:kubectl 配置使用上下文

  16. 16

    Kubectl 补丁添加额外的“-”字符

  17. 17

    在此上下文中,元素样式不允许作为元素主体的子元素(<style scoped>未验证)

  18. 18

    HTML验证程序错误-在此上下文中,不允许将元素滑块作为元素主体的子级

  19. 19

    元素 h3 在此上下文中不允许作为元素标签的子元素。[html]

  20. 20

    在此上下文中不允许表、视图或序列引用“LN_GRAPH_PERC.DATE_RED”

  21. 21

    环境上下文中不允许使用 Angular2 打字稿错误初始值设定项

  22. 22

    kubectl补丁yaml文件不是资源对象

  23. 23

    尝试切换上下文时出现Kubectl配置使用上下文错误

  24. 24

    Kubernetes:如何从kubectl配置中删除集群和上下文?

  25. 25

    Kubectl JSONPath表达式基于当前上下文获取cluster.server属性

  26. 26

    禁用 kubectl config view --flatten 发生的上下文切换

  27. 27

    kubectl命令找不到命名空间值

  28. 28

    为什么Tokio返回错误“在不允许阻塞的上下文中不能删除运行时”?

  29. 29

    使用kubectl补丁将卷添加到Kubernetes StatefulSet

热门标签

归档