Kubernetes API:为pod添加标签

Mr.*_*oor 13 kubernetes

使用命令,我可以添加如下标签

PATCH /api/v1/namespaces/{namespace}/pods/{name} 我怎么能从kubernetes API那样做?

我猜它可以通过 PATCH /api/v1/namespaces/{namespace}/pods/{name}

这是pod.json

kubectl label pod POD_NAME KEY1=VALUE1
Run Code Online (Sandbox Code Playgroud)

我尝试了以下命令

{
    "apiVersion": "v1",
    "kind": "Pod",
    "metadata": {
        "labels": {
            "key1": "value1"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它回来了

KUBE_TOKEN=$(</var/run/secrets/kubernetes.io/serviceaccount/token)
curl --request PATCH --insecure \
      --header "Authorization: Bearer $KUBE_TOKEN"  \
      --data "$(cat pod.json)" \
      https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/$POD_NAMESPACE/pods/$POD_NAME
Run Code Online (Sandbox Code Playgroud)

Eri*_*une 7

将content-type设置为application/json-patch+json并以http://jsonpatch.org格式指定补丁.

$ cat > patch.json <<EOF
[ 
 { 
 "op": "add", "path": "/metadata/labels/hello", "value": "world" 
 } 
]
EOF
$ curl --request PATCH --data "$(cat patch.json)" -H "Content-Type:application/json-patch+json" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/$POD_NAMESPACE/pods/$POD_NAME  
Run Code Online (Sandbox Code Playgroud)