K8s:获取对 Kubernetes REST API 服务器的 PATCH 请求的 HTTP 415

K8s: gets HTTP 415 for PATCH request to Kubernetes REST API server

我已经看到 Kubernetes REST API 参考手册支持 PATCH 请求 link:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#patch-ingress-v1beta1-networking-k8s-io

HTTP Request
PATCH /apis/networking.k8s.io/v1beta1/namespaces/{namespace}/ingresses/{name}

但是,当通过 Postman 中的 Kubernetes REST API 服务器向 Kubernetes 集群发送 PATCH 请求时,我收到 HTTP 415 Unsupported Media Type 错误。

我想在集群外部分更新我们指定的入口。为此,我添加了试用版的快照。

Kubernetes REST API server Ingress PATCH Request

我们的 Kubernetes 版本是:

Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:13:54Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}

正在修补 JSON:

{
   "apiVersion": "networking.k8s.io/v1beta1",
   "kind": "Ingress",
   "metadata": {
      "name": "demo-ingress",
      "annotations": {
         "nginx.org/rewrites": "serviceName=demo-service-235 rewrite=/"
      }
   },
   "spec": {
      "rules": [
         {
            "host": "www.demodeployment.com",
            "http": {
               "paths": [
                  {
                     "path": "/235/",
                     "backend": {
                        "serviceName": "demo-service-235",
                        "servicePort": 8088
                     }
                  }
               ]
            }
         }
      ]
   }
}

我可以成功地使用 GET、POST、PUT 和 DELETE,在 PATCH 请求中我无法得到相同的结果。问题的根本原因可能是什么?你有什么想法?

在 header 中设置 Content-Type: application/merge-patch+json

此外,我建议首先尝试使用 kubectl patch --v=8 进行修补,增加详细程度,这将显示 kubectl 发送到 Kubernetes API 服务器的 http 请求和有效负载。然后你可以获取相同的请求有效负载并使用邮递员。

我通过设置以下 header 解决了同样的问题:

"Content-Type": "application/strategic-merge-patch+json"