В чем разница между rollout restart pod и delete pod в k8s? Они оба перезапускают pod?
решение1
В Kubernetes команды rollout restart и delete используются для перезапуска или удаления pod'ов соответственно. Однако они работают по-разному и оказывают разное влияние на pod'ы и всю систему.
Команда rollout restart используется для перезапуска развертывания или набора реплик в Kubernetes. Это означает, что она заменит существующие модули в развертывании или наборе реплик новыми, которые будут иметь последнюю версию кода приложения и любую обновленную конфигурацию. Это полезно для развертывания обновлений приложения или для перезапуска развертывания, которое не функционирует должным образом.
С другой стороны, команда delete используется для удаления pod напрямую, не затрагивая развертывание или набор реплик. Это удалит pod из системы и освободит ресурсы, которые он использовал. Это полезно для удаления pod, которые больше не нужны, или для устранения неполадок с отдельными pod.
В целом, обе команды rollout restart и delete можно использовать для перезапуска pod в Kubernetes, но они работают по-разному и оказывают разное влияние на систему. Команда rollout restart используется для перезапуска всего развертывания или набора реплик, а команда delete используется для удаления отдельных pod.
решение2
Для других людей, которые попадают сюда, kubectl rollout
не относится к pods. Согласно справке по командной строке ( kubectl rollout -h
):
Valid resource types include:
* deployments
* daemonsets
* statefulsets
На момент написания статьи, если вы попытаетесь запустить перезапуск развертывания на модуле, вы, скорее всего, получите следующее сообщение об ошибке:
$ kubectl rollout restart pod test-zrdcs
error: pods "test-zrdcs" restarting is not supported
Для ресурсов pod удаление будет делать то, что указано на tin, и пытаться удалить pod. Если pod управляется ресурсом более высокого уровня (например, набором реплик или развертыванием), то этот объект может заменить удаленный pod.
Вот версия, которую kubectl
я использую прямо сейчас:
$ kubectl version --client --short
Client Version: v1.25.4