В чем разница между развертыванием модуля перезапуска и удалением модуля?

В чем разница между развертыванием модуля перезапуска и удалением модуля?

В чем разница между 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

Связанный контент