Безопасно ли когда-нибудь принудительно удалить модуль Kubernetes?

https://kubernetes.io/docs/concepts/workloads/pods/pod/#force-deletion-of-pods.

В этом разделе документации kubernetes указывается, что «принудительное удаление может быть потенциально опасным для некоторых подов», но не подробно описываются опасности.

Я понимаю, что принудительное удаление модуля приведет к немедленному снятию его с регистрации в API до того, как контейнер kubelet подтвердит, что базовый контейнер действительно удален, что может привести к запуску группы осиротевших контейнеров, если kubelet не удастся удалить их. Однако я не знаю, как определить, является ли модуль «опасным» для принудительного удаления, прежде чем я это сделаю, или есть даже способ предсказать это.

Есть ли какие-либо рекомендации по безопасному принудительному удалению модуля? Или это просто небезопасная операция по своей сути?


person Garrett Bates    schedule 15.01.2019    source источник


Ответы (1)


Это действительно зависит от того, с какой точки зрения.

От мастера K8s и etcd, который сохраняет состояние в K8s, это безопасно, поскольку запись удаляется в etcd.

Тем не менее, kube-scheduler сообщает кубелету на узле убить под, и иногда кубелет не может убить его (в большинстве случаев это так).

Причина, по которой он не может убить модуль, заключается в том, что что-то вроде докера или ваша среда выполнения не отвечает, или системный ресурс Linux не освобождается, что может быть чем-то вроде тупика, сбоя оборудования и т. Д.

Так что в большинстве случаев это безопасно, но может быть несколько конкретных случаев, когда это не связано с характером вашего приложения и состоянием вашей системы.

person Rico    schedule 15.01.2019