https://kubernetes.io/docs/concepts/workloads/pods/pod/#force-deletion-of-pods
kubernetes文档的这一部分指出“强行删除可能对某些吊舱有潜在的危险”,但并未真正详细介绍这些危险。
我了解到,强制删除pod会在kubelet容器确认实际删除了基础容器之前立即从API中“注销”该pod,如果kubelet无法删除它们,这可能会导致一堆孤立的容器运行。但是,在执行此操作之前,我不知道如何辨别某个吊舱是否“危险”要强制删除,或者甚至没有办法预测到这一点。
是否有关于安全强制删除吊舱的准则?还是仅仅是天生不安全的操作?
答案 0 :(得分:2)
这实际上取决于什么观点。
从K8s主站和etcd中将状态保持在K8s中是安全的,因为在etcd中删除了该条目。
但是,kube-scheduler告诉节点上的kubelet杀死Pod,有时kubelet可能无法杀死它(大多数时候)。
之所以可能无法杀死Pod的原因是,例如docker之类的东西或者您的运行时没有响应,或者没有释放Linux系统资源,这可能是死锁,硬件故障等。< / p>
因此在大多数情况下它是安全的,但是在某些特定情况下,这不是由于应用程序的性质和系统状态所致。