GKE,如何避免 DaemonSet 被 cluster autoscaler 逐出?

GKE, how to avoid DaemonSet being evicted by cluster autoscaler?

这是我的 DaemonSet

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: nginx
spec:
  selector:
    matchLabels:
      run: nginx
  template:
    metadata:
      labels:
        run: nginx
      annotations:
        "cluster-autoscaler.kubernetes.io/enable-ds-eviction": "false"
        "cluster-autoscaler.kubernetes.io/safe-to-evict": "false"
    spec:
      containers:
      - image: nginx
        imagePullPolicy: IfNotPresent
        name: nginx
        ports:
        - containerPort: 80
          protocol: TCP

根据 documentation.

cluster-autoscaler.kubernetes.io/enable-ds-eviction: "false" 应该防止缩减。

但 GKE 集群自动缩放器会忽略此注释。

有什么方法可以防止 DaemonSet 被集群自动缩放器驱逐?

一旦节点实际为空,cluster-autoscaler.kubernetes.io/enable-ds-eviction 注释将不适用。在缩小过程中,虽然自动缩放器在其他地方是 evicting/rescheduling pods,但当 cluster-autoscaler.kubernetes.io/enable-ds-eviction 设置为 false 时它将忽略守护进程。一旦节点为空(即不再有任何部署 pods),该节点将被删除(并且 daemonset pod 将被优雅地终止)。