Причиной использования pod, а не непосредственно контейнера, является то, что kubernetes требуется больше информации для организации таких контейнеров, как restart policy
, liveness probe
, readiness probe
. liveness probe
определяет, что контейнер внутри модулей активен или нет, restart policy
определяет, что делать с контейнером в случае его сбоя. readiness probe
определяет, что контейнер готов к подаче.
Таким образом, вместо добавления этих свойств в существующий контейнер, kubernetes решил написать оболочку для контейнеров со всей необходимой дополнительной информацией.
Кроме того, Kubernetes поддерживает многоконтейнерный модуль, который в основном требуется для контейнеров с коляской, главным образом для журнала или сборщика данных или прокси для основного контейнера. Еще одно преимущество многоконтейнерного модуля состоит в том, что они могут иметь очень тесно связанный контейнер приложений, совместно использующий одни и те же данные, одно и то же пространство имен сети и одно и то же пространство имен IPC, что было бы невозможно, если бы они выбрали непосредственное использование контейнера без какой-либо оболочки вокруг него.
Ниже приводится очень хорошая статья, чтобы дать вам краткое представление:
https://www.mirantis.com/blog/multi-container-pods-and-container-communication-in-kubernetes/