Создание сети Podman
Чтобы обеспечить связь между различными контейнерами, создаём сеть Podman с помощью файла .network. В этом примере называем файл quadlet-demo.network. Вы будете ссылаться на этот файл позже в файлах базы данных .container и WordPress пода .kube.
[Network]
Subnet=192.168.30.0/24
Gateway=192.168.30.1
Label=app=wordpress
Демонстрация не обязательно требует настройки сети, но её использование предоставляет некоторые важные возможности:
- установка адреса подсети сети и адреса шлюза
- настройка метки
Развёртываем сервер базы данных
В демонстрации Kubernetes серверу базы данных требуется постоянный том, который транслируется в том Podman, созданный с помощью файла .volume. В этом примере используйте имя quadlet-demo-mysql.volume:
[Volume]
Демонстрация не требует дополнительной настройки тома.
Чтобы запустить сервер базы данных, используем следующий файл .container с именем quadlet-demo-mysql.container:
[Install]
WantedBy=default.target
[Container]
Image=docker.io/library/mysql:5.6
ContainerName=quadlet-demo-mysql
Volume=quadlet-demo-mysql.volume:/var/lib/mysql
Network=quadlet-demo.network
# Once 4.5 is released change this line to use the quadlet Secret key
PodmanArgs=--secret=mysql-root-password-container,type=env,target=MYSQL_ROOT_PASSWORD
Раздел Container устанавливает следующие ключи:
Image: используем официальный образ mysql
ContainerName: задаём имя контейнера, позволяющее сети найти его с помощью DNS
Volume: устанавливаем источник тома в качестве ранее определённого файла .volume, указав Quadlet создать зависимость systemd между юнит-файлами
Network: устанавливаем имя сети в ранее определённом файле .network, предписывая Quadlet создать зависимость systemd между юнит-файлами
PodmanArgs: используем значение из секрета в качестве значения переменной целевой среды
Обратите внимание, что в этой демонстрации используется Podman v4.4.x, в котором Quadlet ещё не поддерживает ключ Secret. После выпуска Podman 4.5 вы можете заменить ключ PodmanArgs на ключ Secret следующим образом:
Secret=mysql-root-password-container,type=env,target=MYSQL_ROOT_PASSWORD
Продолжение следует...
Перевод с некоторыми авторскими заголовками.
Автор оригинала: Ygal Blum (Red Hat).