从受污染的节点自动删除吊舱

时间:2018-08-10 18:41:56

标签: kubernetes

在寻求使k8s部署自动化的过程中,我正在启动应该自动设置为主节点或简单节点的节点。

这是通过在k8s中加入节点并具有仅在具有特定主机名的节点(仅主节点)上运行的守护程序来完成的,该节点污点了该节点,将其标记为主节点并设置了/ etc / kubernetes的内容。

我的问题是,在进行污点和标记之前,从集群的角度来看,该节点是一个简单的节点,因此它将在调度程序希望或看起来合适的任何对象上启动。

这是不希望的,主要是因为它还添加了kube2iam,它只能在工作节点上运行。反过来,这会阻止附加到主服务器的IAM角色,从而破坏其他功能。

是否有可能迫使集群将原本不应该位于主机上的吊舱逐出?

EDIT

当前,我正在脚本末尾执行此操作: K8S_NAME=$(kubectl get nodes -l kubernetes.io/hostname=$(hostname) --no-headers --output=custom-columns=NAME:.metadata.name) kubectl get pods --all-namespaces --field-selector spec.nodeName=$K8S_NAME --no-headers | gawk '{print "-n "$1" "$2}' | xargs -n 3 kubectl delete pod

但是我正在寻找更好的东西。

1 个答案:

答案 0 :(得分:1)

您可以运行kubectl drain命令并使用所有其他选项指定节点名称,这将更加简单。

相关问题