Если я использую внешнюю службу, мне нужно будет беспокоиться при обновлении приложения и следить за тем, чтобы не было несовпадений версий, и, возможно, внешняя служба менее гибкая, поскольку я не могу это контролировать. Каков будет рекомендуемый способ использования базы данных, либо самостоятельно развернутой в Kubernetes, либо с использованием внешней?
Это строгое мнение, основанное на вопросе. Если вы не беспокоитесь о таких затратах, я бы использовал внешнюю базу данных, возможно, базу данных облачного провайдера, например Amazon RDS или Cloud SQL от GCP. IMO, вы бы разгрузили управление базой данных извне и было бы легче отладить, если что-то пойдет не так. Другой аспект заключается в том, что вы можете воспользоваться преимуществами чего-либо с лучшей производительностью / масштабируемостью, например Amazon Aurora .
Если вас беспокоят затраты, воспользуйтесь решением в Kubernetes, которое позволит вам использовать один и тот же набор компьютеров для вашей базы данных, вашего nginx и модулей приложения.
О nginx, я должен просто использовать свой собственный nginx, работающий как отдельное развертывание, или мне следует использовать Ingress Controller? В чем может быть преимущество использования входа по сравнению с nginx, хотя nginx в качестве развертывания можно автоматически масштабировать, а контроллер входа - нет?
На самом деле вы можете автоматически масштабировать входной контроллер nginx, который запускает nginx в том же контейнере и управляется развертыванием, вам нужно настроить автомасштабирование на основе некоторой метрики, такой как ЦП, на модулях входного контроллера nginx.