首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes ConfigMap更新

Kubernetes ConfigMap更新
EN

Stack Overflow用户
提问于 2018-09-05 20:18:08
回答 2查看 1.2K关注 0票数 1

我正在编写一个python脚本,用于以编程方式更新configmap。

示例脚本如下所示。

代码语言:javascript
复制
import requests

headers = {"Content-Type": "application/json-patch+json"}
configData = {
"apiVersion": "v1",
"kind": "ConfigMap",
"data": {
    "test2.load": "testimtest"
},
"metadata": {
    "name": "nginx2"
}
}

r = requests.patch("http://localhost:8080/api/v1/namespaces/default/configmaps/nginx2", json=configData)

这个问题有趣的一面是,我对POST和GET方法没有问题,但是当我想用HTTP的PATCH方法更新kubernetes configmap时,我得到了

代码语言:javascript
复制
 "reason":"UnsupportedMediaType" //STATUS_CODE 415

我该如何处理这个问题。

EN

回答 2

Stack Overflow用户

发布于 2018-09-09 03:31:43

我建议您使用Kubernetes客户端库,而不是自己进行原始的HTTP调用。然后你不需要找出底层连接的东西,因为库会为你抽象出来。

我一直在使用Pykube,它提供了一个很好的pythonic API,尽管它现在似乎已经被废弃了。

您也可以使用官方client-python,它是主动维护的。这个库有点笨拙,因为它是基于自动生成的OpenAPI客户端的,但它涵盖了很多用例-比如流式结果。

票数 1
EN

Stack Overflow用户

发布于 2018-09-09 01:21:16

你需要阅读一点才能弄清楚这个HTTP动词是否真的被支持,也许你有权限问题?

无论如何,我建议您使用kubectl的详细选项来找出这样的东西。

例如,假设我想删除一个pod,我会:

代码语言:javascript
复制
kubectl -v=9 delete pod myapp

输出(我稍微清理了一下)应该包含您正在查找的信息:

代码语言:javascript
复制
I1315 14:42:19.153664 30452 round_trippers.go:417]
   curl -k -v -XDELETE -H "Accept: application/json, */*"
   -H "User-Agent: kubectl/v1.8.5 (linux/amd64) kubernetes/cce11c6"
   https://<ip>:<port>/api/v1/namespaces/default/pods/myapp
...

所以现在,如果我有了用python或其他语言构造方法所需的所有细节,希望这有意义和/或有帮助,可以尝试使用patch命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52184936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档