我正在尝试使用 Python kubernetes-client库修补 kube 节点。
具体来说,我正在尝试封锁节点。使用 kubectl,我能够成功地做到这一点:
kubectl patch node mynode -json --patch={"op":"replace", "path":"/spec/unschedulable", "value":true}`
但是使用 python kubernetes-client 库失败:
from kubernetes import client, config
config.load_kube_config()
body='{"op":"replace", "path":"/spec/unschedulable", "value":true}'
# also have tried body='[{"op":"replace", "path":"/spec/unschedulable", "value":true}]'
v1=client.CoreV1Api()
ret=v1.patch_node(name="mynode", body=body)
print (ret)
返回包含以下消息:
"json: cannot unmarshal object into Go value of type jsonpatch.Patch"
一些研究使我发现了这个错误。它是指直接使用kubernetes api,但问题似乎是一样的。不幸的是,解决方案 - 传递一个数组 - 没有帮助。
不幸的是,这里的文档没有帮助。所需的类型body
显示为UNKNOWN_BASE_TYPE
,没有用处。我查看了代码,但没有关于我应该如何格式化正文的线索 - 我很茫然。