я пытаюсь начать и т. д. как служба systemd запускается в контейнере с подман.
После запуска я получаю этот журнал ошибок от systemd:
systemd[1]: etcd.service: получено уведомление от PID 4696, но прием разрешен только для основного PID 4868
Но etcd, кажется, может начать попытку уведомить демона контейнера:
21T15:31:08.817Z","вызывающий":"etcdserver/server.go:2500","msg":"версия кластера>
21 августа 15:31:08 ip-10-0-0-71 podman[4696]: {"level":"info","ts":"2021-08-21T15:31:08.817Z","вызывающий" :"etcdmain/main.go:47","msg":"уведомление демона инициализации>
21 августа 15:31:08 ip-10-0-0-71 podman[4696]: {"level":"info","ts":"2021-08-21T15:31:08.818Z","вызывающий" :"etcdmain/main.go:53","msg":"уведомление успешно>
Но systemd, похоже, не знает об этом и завершает службу etcd:
21 августа, 15:32:34 ip-10-0-0-71 systemd[1]: etcd.service: время ожидания начала операции истекло. Прекращение.
21 августа 15:32:35 ip-10-0-0-71 podman[4696]: {"level":"info","ts":"2021-08-21T15:32:35.000Z","звонящий" :"osutil/interrupt_unix.go:64","msg":"знак получен>
21 августа 15:32:35 ip-10-0-0-71 podman[4696]: {"level":"info","ts":"2021-08-21T15:32:35.000Z","звонящий" :"embed/etcd.go:367","msg":"закрытие сервера etcd","n>
Это статус службы systemd:
$ sudo systemctl статус etcd.service
etcd.service - etcd
Загружено: загружено (/etc/systemd/system/etcd.service; включено; предустановка поставщика: включена)
Активно: сбой (результат: тайм-аут) с субботы 21 августа 2021 г. 15:32:35 UTC; 8 минут назад
Процесс: 4868 ExecStart=/usr/bin/podman run -p 2380:2380 -p 2379:2379 --volume=/var/lib/etcd:/etcd-data:z --name etcd 842445240665.dkr.ecr.eu -норд>
Основной PID: 4868 (код=выход, статус=0/УСПЕХ)
ЦП: 3,729 с
Это мой сервисный файл системного модуля для etcd, запущенный с помощью podman:
кошка <<ЕОФ | sudo тройник /etc/systemd/system/etcd.service
[Ед. изм]
Описание=и т.д.
После = podman_ecr_login.service mk_etcd_data_dir.service
[Оказание услуг]
Тип=уведомить
ExecStart=/usr/bin/podman run -p 2380:2380 -p 2379:2379 --volume=/var/lib/etcd:/etcd-data:z \
--name etcd <мой-aws-аккаунт>.dkr.ecr.eu-north-1.amazonaws.com/etcd:v3.5.0 \
/usr/local/bin/etcd --data-dir=/etcd-данные \
--имя etcd0 \
--advertise-client-urls http://127.0.0.1:2379 \
--listen-client-urls http://0.0.0.0:2379 \
--initial-advertise-peer-urls http://127.0.0.1:2380 \
--listen-peer-urls http://0.0.0.0:2380 \
--initial-cluster etcd0=http://127.0.0.1:2380
[Установить]
WantedBy=многопользовательская.цель
EOF
sudo systemctl включить etcd
sudo systemctl запустить etcd
Я подозреваю, что это может быть связано с Тип=уведомить
или, возможно, то, как я использую podman или etcd. Я запускаю etcd аналогично описанному в документации etcd: Запуск кластеров etcd внутри контейнеров — Запуск одного узла etcd. Я запускаю это на Debian 11 с Podman 3.0.1.
Любые предложения о том, как я могу запустить etcd с помощью podman в качестве службы systemd?