kubernetes - 无法使用邮递员在 kubernetes 中修补工作
问题描述
使用 postman 使用 post 方法在 kubernetes 中创建了一个作业,现在尝试使用 postman 使用 patch 方法修补相同的作业,我收到 400 个错误请求。
帖子标题:内容类型应用程序/yaml
发布方法主体:
---
apiVersion: batch/v1
kind: Job
metadata:
name: pi
labels:
app: dev
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
补丁标头:内容类型应用程序/策略合并补丁+json
补丁请求正文:
{
"apiVersion": "batch/v1",
"kind": "Job",
"metadata": {
"name": "pi"
},
"spec": {
"template": {
"spec": {
"containers": [
{
"name": "pi",
"image": "perl",
"command": [
"perl",
"-Mbignum=bpi",
"-wle",
"print bpi(2000)"
]
}
],
"restartPolicy": "Never"
}
},
"backoffLimit": 5
}
}
更改正文请检查链接。 补丁请求的正文
我所做的修改是将 backofflimit 更改为 5。我能够发布和修补其他资源,例如服务和部署,但我一直在修补工作,我对其他人也遵循完全相同的步骤。
错误我收到错误
解决方案
使用 'strategic-merge-patch+json' 类型,您应该在请求正文中使用这个 json 补丁:
{"spec":{"backoffLimit": 7}}
因为您的意图是根据 backoffLimit 键合并/替换现有对象的值。
检查文档以了解如何使用战略合并补丁来更新资源。
更新 请尝试使用 curl:
- 启动本地 Kubernetes 代理服务器:
kubectl proxy
curl -k -v -XPATCH -H "Content-Type: application/strategic-merge-patch+json" --data '{"spe":{"backoffLimit": 9}}' http://localhost:8001/apis/batch/v1/namespaces/default/jobs/pi
输出:
< HTTP/1.1 200 OK <-patch succeeded
< Audit-Id: 02d97d05-2bfb-4500-ac34-c8eb04ff8503
< Content-Length: 1795
< Content-Type: application/json
< Date: Fri, 12 Jul 2019 13:54:37 GMT
<
{
"kind": "Job",
"apiVersion": "batch/v1",
"metadata": {
"name": "pi",
"namespace": "default",
"selfLink": "/apis/batch/v1/namespaces/default/jobs/pi",
"uid": "5ac61d6d-a4a0-11e9-abc7-42010a80012c",
"resourceVersion": "4339038",
"creationTimestamp": "2019-07-12T12:27:03Z",
"labels": {
"app": "dev"
}
},
"spec": {
"parallelism": 1,
"completions": 1,
"backoffLimit": 9 <-patch succeeded
,
推荐阅读
- php - 从字符串中选择捕获的值
- angularjs - 角度代码未执行
- android - Cognito "redirect URL" using Android SDK
- docx - Pandoc Word to Dokuwiki heading conversion
- c# - How to unit test a vsix project?
- excel - Excel 2013:行索引数组的多个搜索条件
- javascript - Cookie expiration date equals -1
- php - 条带将元数据传递给客户条带时出现无效哈希错误
- linux - 无法在 Shell 脚本中保存进程的进程 ID
- angular - Angular 6 库