簡體   English   中英

使用“ kubectl補丁”更新部署標簽不起作用

[英]Update deployment labels using “kubectl patch” does not work

我正在嘗試使用kubectl更新標簽。

當我使用apply它可以工作,但打patch時卻不能。

我嘗試了kubectl patch deployment nginx-deployment --patch "$(cat nginx.yaml)" ; 它不返回no change ,而我希望該更改可以返回標簽更改。

這些是對我的Yaml的唯一更改。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: testLab
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.8
        ports:
        - containerPort: 80
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: helloWorld
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.8
        ports:
        - containerPort: 80

補丁更新有限制嗎,或者我做錯了什么?

我也嘗試指定--type strategic和其他類型,但似乎都沒有用。

在第二個文件(更改了標簽的位置)上執行命令kubectl patch后 ,您應該看到以下錯誤:

Error from server: cannot restore map from string

在命令kubectl應用於此文件后,您將得到以下錯誤:

error: error validating "nginx.yaml": error validating data: ValidationError(Deployment.metadata): unknown field "label" in io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta; if you choose to ignore these errors, turn validation off with --validate=false

您的部署文件應如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: helloWorld
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.8
        ports:
        - containerPort: 8

您錯過了在應用標簽后添加空格的功能。

添加空間,然后再次執行命令kubectl patch deployment nginx-deployment --patch "$(cat nginx.yaml)"

這里是有用的文檔: 標簽選擇器kubernetes-deploymentskubernetes-patch

您應該在元數據中包含以下內容:

metadata:
  name: nginx-deployment
  labels:
    label: testLabel2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM