# #kubernetes #google-kubernetes-engine
Вопрос:
Это мой демонический набор
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
Согласно документации.
cluster-autoscaler.kubernetes.io/enable-ds-eviction: «ложь» должна предотвращать уменьшение масштаба.
Но GKE cluster autoscaler игнорирует эту аннотацию.
Есть ли какой-либо способ предотвратить удаление набора демонов автомасштабером кластера?
Комментарии:
1. Вы говорите, что DS удаляется до других развертываний на самом узле, или вы говорите, что весь узел сокращается (что, конечно, включает DS)
2. Весь узел масштабируется. Я надеюсь, что не буду уменьшать масштаб этого узла, когда существует такой тип DS.
3. Однако набор демонов запускает модуль на каждом узле; похоже, что это вообще предотвратит масштабирование кластерного автоскейлера.
4. Что я хочу сделать, так это удалить эту аннотацию, когда DaemonSet завершит свою работу.
Ответ №1:
cluster-autoscaler.kubernetes.io/enable-ds-eviction
Аннотация не применяется, если узел фактически пуст. Во время процесса уменьшения масштаба, в то время как автоскейлер удаляет/переназначает модули в другом месте, он будет игнорировать наборы демонов, если cluster-autoscaler.kubernetes.io/enable-ds-eviction
установлено значение false. Как только узел будет пуст (т. Е. Больше не будет развернутых модулей), узел будет удален (и модуль набора демонов будет изящно завершен).
Комментарии:
1. Похоже, я неправильно понял эту аннотацию. Спасибо вам за ваши ответы.
2. Я думал об этом. Независимо от того, правда это или ложь, это будет уменьшаться. В чем реальная польза этой аннотации?
3. Это делается для того, чтобы гарантировать, что, пока на узле развернуты модули, набор демонов не будет удален. Например, если автоскейлер определит, что он может перемещать модули на другие узлы, он не будет удалять набор демонов во время процесса уменьшения масштаба. Но как только узел опустеет, он удалит узел.