Подготовка пользователя базы данных в кластере Kubernetes

У меня есть кластер Kubernetes с несколькими развернутыми приложениями, каждое из которых использует отдельный пользователь + базу данных в экземпляре Amazon RDS (Postgres).

При развертывании нового экземпляра приложения мы хотели бы предоставить базу данных и пользователя на существующем сервере Postgres.

то есть, мы хотели бы провести что-то одно в следующей строке декларативным способом "Желаемое состояние".

CREATE DATABASE $appname; CREATE USER $appname; GRANT ALL PRIVILEGES ON DATABASE $appname TO $appname;

В настоящее время мы делаем это с помощью отдельного сценария Ansible, однако я бы хотел обработать его, используя CustomResourceDefinition, чтобы избежать дублирования в использовании инструментов.

Некоторое прибегание к поиску оказалось экспериментальным оператором, который реализует этот шаблон ( https://github.com/torchbox/k8s-database-controller), однако он помечен как экспериментальный, не рекомендуется для использования и выглядит в основном не поддерживаемым.

Есть ли передовой подход к реализации этого в Kubernetes, или мы должны лучше всего рассматривать это как отдельный этап подготовки?

tl; dr Хотелось бы иметь один экземпляр RDS Postgres, совместно используемый несколькими приложениями, развернутыми в кластере Kubernetes, причем каждое приложение получает свою собственную "базу данных" в этом экземпляре.

0 ответов

Другие вопросы по тегам