问题背景
为了测试某些内容需要不管更改k8s node condition的status 以及message中内容, 通过k8s go client肯定可以修改,但是需要写代码以及针对不同平台进行构建,本着方便快速的目的,shell脚本命令是最快速的方式
主要步骤
# get k8s access cert and key
cat /root/.kube/config |grep client-certificate-data|awk '{print $2}'|base64 -d >/root/.kube/admin.crt
cat /root/.kube/config |grep client-key-data|awk '{print $2}'|base64 -d >/root/.kube/admin.key```
nodeName 需要替换当前需更新condition的node真实nodeName, 其中在master节带你上执行就行,或者在其他节点需要把127.0.0.1:7443替换为主机环境中的真实ip和端口
curl -X PATCH -H "Content-Type: application/strategic-merge-patch+json" -k --cert /root/.kube/admin.crt --key /root/.kube/admin.key https://127.0.0.1:7443/api/v1/nodes/{nodeName}/status -d '{"status":{"conditions":[{"type":"NetworkUnavailable","status":"False"}]}}'
注意:这里是以为strategic-merge-patch方式更新的,也即是除了制定制定会更新外,其余字段保持不变。
效果截图
更新前的
更新后的