首页 > 解决方案 > --default-unreachable-toleration-seconds 和 --default-not-ready-toleration-seconds 不起作用

问题描述

我更新了 kube-apiserver 服务,默认容忍限制为 60 秒。

--default-unreachable-toleration-seconds=60 
--default-not-ready-toleration-seconds=60

我在我的一个节点中停止了 kubelet,它进入了未就绪状态。

但我面临的问题是 pod 仅在从节点移动到未就绪状态 5 分钟后才被驱逐。期望豆荚应该在 60 秒内被驱逐。

我的 Kubernetes 版本是 1.15。

进行此更改后,我重新启动了 kube-controller-manager 和 kube-apiserver。

程序有什么问题?

标签: kuberneteskubernetes-pod

解决方案


使用这两个默认的容忍参数,Kubernetes 会自动为每个 pod 添加一个容忍配置。因此,重新部署所有 pod 以确保将容忍度添加到所有 pod 非常重要。

除了更改 kubernetes 控制平面组件的参数(使其对所有 pod 进行全局更改)之外,您还可以使用以下配置修改每个 pod 的容忍时间。

tolerations:
  - key: "node.kubernetes.io/unreachable"
    operator: "Exists"
    effect: "NoExecute"
    tolerationSeconds: 60
  - key: "node.kubernetes.io/not-ready"
    operator: "Exists"
    effect: "NoExecute"
    tolerationSeconds: 60

https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/#taint-based-evictions


推荐阅读