我正在使用Kubernetes 1.10.2版本并设置1个主节点3个节点的集群。
使用GOLang api,我具有以下功能来标记节点。
在执行此代码时,几次出现以下错误,
无法更新标签:无法在节点“ node2”上执行操作:对象已被修改;请将您的更改应用于最新 版本,然后重试
重试几次相同的代码后,它可以正常工作。如何克服这个错误?
节点标签功能:
func labelNodes(nodeLabelName string, kubeClient kubernetes.Interface) error {
k8sNodeList, err := kubeClient.CoreV1().Nodes().List(metav1.ListOptions{})
if err != nil {
return errors.New("Failed to get nodes " + err.Error())
}
for _, k8sNode := range k8sNodeList.Items {
nodeLabels[nodeLabelName] = "myNodeLabel"
k8sNode.SetLabels(nodeLabels)
if _, err = kubeClient.CoreV1().Nodes().Update(&k8sNode); err != nil {
return errors.New("Failed to update label " + err.Error())
}
}
return nil
}