问题背景

为了测试某些内容需要不管更改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方式更新的,也即是除了制定制定会更新外,其余字段保持不变。

效果截图

更新前的
在这里插入图片描述

更新后的
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐