更新状态中的节点条件类型

Update node condition type in status

我正在尝试修补、清除工作节点上 OpenShift and/or Kubernetes 集群中的节点条件。补丁不工作,甚至尝试解决方法,也许更新 etcd 中的密钥。

主要问题是我创建了新的节点条件,然后删除了它们,但它们并没有从列表中删除,尽管它们不再存在或正在被控制器更新。

$ oc describe node node1.example.com

Conditions:                 
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  ExampleToRemove        False   Wed, 13 Feb 2019 15:09:42 -0500   Wed, 13 Feb 2019 11:05:57 -0500   KubeletHasSufficientDisk     kubelet has sufficient disk space available
  MemoryPressure   False   Wed, 13 Feb 2019 15:09:42 -0500   Wed, 13 Feb 2019 11:05:57 -0500   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Wed, 13 Feb 2019 15:09:42 -0500   Wed, 13 Feb 2019 11:05:57 -0500   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Wed, 13 Feb 2019 15:09:42 -0500   Wed, 13 Feb 2019 11:05:57 -0500   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            True    Wed, 13 Feb 2019 15:09:42 -0500

将评论中的答案发布为社区 Wiki。

我找到了修复程序,您可以通过更新 etcd 密钥来编辑节点描述中的任何内容 /kubernetes.io/minions/<node-name>

编辑: 最后我找到了一种方法来修补和更新节点条件类型状态,添加新的甚至删除

示例:

curl -k -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json-patch+json" -X PATCH https://APISERVER:6443/api/v1/nodes/NAME-OF-NODE-Update-Condition/status --data '[{ "op": "remove", "path": "/status/conditions/2"}]'

注意:每个条件都有一个索引号,所以试着知道索引号是什么,然后在 /status/condition/

中定位它