Назад | Перейти на главную страницу

kubernetes daemonset pod завершает работу на время после убийства

У меня есть Kubernetes Daemonset, работающий в моей версии кластера GKE:

Server Version: version.Info{Major:"1", Minor:"9+", GitVersion:"v1.9.6-gke.1", GitCommit:"cb151369f60073317da686a6ce7de36abe2bda8d", GitTreeState:"clean", BuildDate:"2018-04-07T22:06:59Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}

Когда под удаляется, мои контейнеры нормально обрабатывают выданный SIGTERM и закрываются. Оба контейнера в модуле немедленно сообщают следующее:

State: Terminated Reason: Completed Exit Code: 0 Started: Tue, 22 May 2018 17:09:39 -0500 Finished: Tue, 22 May 2018 17:24:11 -0500 Ready: False

Однако капсула остается в Ready: 0/2, Status: Terminating примерно на 30 секунд после этого. Есть идеи о том, почему это может произойти или как это диагностировать?

Льготный период по умолчанию составляет 30 секунд. Как и любое значение по умолчанию, оно может соответствовать вашему варианту использования, а может и не соответствовать. Изменить льготный период можно двумя способами:

1. в файле yaml

Например, следующий .yaml показывает простую конфигурацию DaemonSet с 30-секундным льготным периодом завершения.

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
.
.
.

terminationGracePeriodSeconds: 30

2. В командной строке вы запускаете «kubeclt delete».

Например,

kubectl удалить ИМЯ модуля --grace-period = 0

для принудительного удаления согласно сообщению @Zied.

Если мы сосредоточимся на части удаления, которую вы описываете, мы можем обратиться к kubectl delete помогите понять это стручок ресурс имеет grace-period

Некоторые ресурсы, например модули, поддерживают плавное удаление. Эти ресурсы> определяют период по умолчанию перед их принудительным завершением (льготный> период), но вы можете переопределить это значение с помощью флага --grace-period или> передать --now, чтобы установить льготный период равным 1.

Вы можете попробовать:

kubectl delete pod NAME --grace-period=0

PS: не могли бы вы объяснить больше взаимосвязи между Daemonset и удалил pod?