Как создать сертификаты для нескольких экземпляров контейнера Docker, используя секреты Docker? - PullRequest
1 голос
/ 10 мая 2019

У меня есть приложение Java, которое я пытаюсь запустить в контейнере Docker.Приложение использует хранилище ключей и хранилище доверенных сертификатов для безопасной связи с базой данных (которая также будет контейнером) и механизмом внешней службы аутентификации, таким как LDAP.
Планируется использовать Kubernetes / Swarm / Openshift для запуска и управления контейнерами,Я планирую запускать несколько экземпляров приложения, а также хотел бы воспользоваться преимуществами того, как Kubernetes / Docker управляет связью между контейнерами (т.е. я бы предпочел не устанавливать имена хостов / IP-адреса для каждого запускаемого мной экземпляра контейнера).Я видел документацию там, и похоже, что я могу использовать сертификат и создать секрет Docker на основе сертификата.Я также видел, как разместить секрет в правильном месте в моем контейнере.

Вопрос в том, что я должен указать в сертификате, используемом для создания секрета Docker?Что я использую для CN?IP-адреса?

Когда мы генерируем сертификаты, мы обычно вводим полное доменное имя как CN и вводим имя хоста и IP-адрес под SAN.Я новичок в Docker и секретах и ​​не знаю, как это работает под капотом, но я бы предположил, что динамически сгенерированный Docker IP не будет соответствовать IP в моем сертификате, если я не укажу, как будут выполняться имя хоста и IP контейнерабыть, чего я пытаюсь избежать.Есть ли способ создать сертификат, который будет работать для нескольких экземпляров приложения?Или я собираюсь создать сертификат для каждого экземпляра и определить имя хоста и IP-адрес для каждого экземпляра контейнера, чтобы получить сертификаты / секреты для работы.Заранее спасибо

1 Ответ

0 голосов
/ 11 мая 2019

Сервисы в Kubernetes имеют внутренние DNS-имена как servicename.namespace.svc.cluster.local.Вы можете обратиться к службе, используя ее короткое имя или полное доменное имя.Вы можете выдавать сертификаты для этих DNS-имен и хранить их как секреты, вам на самом деле не нужно знать IP-адреса служб.

...