Найти тему
ИТ разнообразно

Развёртывание мультиконтейнерного приложения с использованием Podman и Quadlet. Часть 2.

Создание секретов

В демонстрации используются три секрета Podman, которые вы создаёте вне Quadlet. Эти секреты содержат следующие значения:

  • сертификаты TLS для образа Envoy
  • пароль root базы данных для пода Kubernetes
  • пароль root базы данных для контейнера базы данных

Секрет envoy-certificates содержит сертификат TLS и закрытый ключ для HTTPS-трафика. Это секрет Podman, основанный на секрете Kubernetes, который включает следующие ключи:

  • certificate.key: закрытый ключ
  • certificate.pem: открытый сертификат

Если у вас нет сертификатов для использования, вы можете создать самозаверенный сертификат для тестирования с помощью этой команды:

$ openssl req -x509 -sha256 -nodes -days 365 \
-newkey rsa:4096 -keyout certificate.key -out certificate.pem

Чтобы создать секрет Podman, запустите:

$ kubectl create secret generic \
--from-file=certificate.key \
--from-file=certificate.pem \
envoy-certificates \
--dry-run=client \
-o yaml | \
podman kube play -

Обратите внимание, что из-за способа использования данных, независимо от того, используете ли вы файл .container или .kube, второй и третий секреты содержат одну и ту же информацию, но по-разному.

Секрет mysql-root-password-kube содержит пароль для сервера MySQL. Это секрет Podman, основанный на секрете Kubernetes, который включает в себя следующий ключ: "- password". Приложение WordPress, развёрнутое через файл .kube, использует этот секрет.

Секрет mysql-root-password-container также содержит пароль для сервера MySQL. Однако этот секрет является чистым секретом Podman и содержит только значение пароля. Контейнер базы данных, развернутый с помощью файла .container, использует этот секрет.

Чтобы создать оба секрета с использованием одного и того же значения, выполните следующие команды:

$ MYSQL_ROOT_PASSWORD=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 13)

$ kubectl create secret generic \
--from-literal=password="${MYSQL_ROOT_PASSWORD}" \
mysql-root-password-kube \
--dry-run=client \
-o yaml | \
podman kube play -

$ echo -n "${MYSQL_ROOT_PASSWORD}" | \
podman secret create mysql-root-password-container -

Продолжение следует...

Перевод с некоторыми авторскими заголовками.

Автор оригинала: Ygal Blum (Red Hat).