【问题标题】:autoremove pods from tainted nodes从受污染的节点中自动删除 pod
【发布时间】:2018-08-10 18:41:56
【问题描述】:

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

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

我的问题是,在进行污染和标记之前,从集群的角度来看,节点是一个简单的节点,因此它会在其上启动调度程序想要或看起来合适的任何东西。

这是不可取的,主要是因为它还添加了 kube2iam,它应该只在工作节点上运行。这反过来又会阻止附加到主服务器的 IAM 角色,这会破坏其他事情。

是否有可能强制集群驱逐不应该在 master 上的 pod?

编辑

目前我在脚本末尾执行此操作: 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

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

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-23
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2019-03-31
      相关资源
      最近更新 更多