Aluguei uma VPS e queria disponibilizar uma API que desenvolvi.
Optei por utilizar contêineres. A escolha do Podman foi feita considerando o objetivo de melhorar minha afinidade com a ferramenta e, também, usufruir da integração nativa com o systemd.
Para atingir um resultado satisfatório, considerando a inicialização dos contêineres no boot e a possibilidade de acompanhar logs pelo journalctl
, executei os seguintes passos:
Criei um pod com os contêineres necessários.
-
Gerei um arquivo YAML para Kubernetes a partir do pod:
podman generate kube xpto-pod -f /tmp/my_pod_kube.yaml
-
Criei um arquivo
.kube
, referenciando o.yaml
gerado:xpto-pod.kube
[Unit] Description=Serviço XPTO After=network-online.target Wants=network-online.target [Install] WantedBy=multi-user.target [Service] Restart=on-failure RestartSec=5s TimeoutStartSec=900 [Kube] Yaml=/tmp/my_pod_kube.yaml PublishPort=8080:80 LogDriver=journald SetWorkingDirectory=yaml KubeDownForce=true
Obs: A seção
[Install]
é essencial para que o systemd inicie o pod automaticamente no boot. -
Movi o arquivo para a pasta correta:
sudo mv xpto-pod.kube /etc/containers/systemd/
-
Recarreguei os serviços do systemd:
sudo systemctl daemon-reexec sudo systemctl daemon-reload
-
Finalizado! Para verificar se o serviço está em execução:
systemctl status xpto-pod.service
Continuo explorando formas de usar o Podman e suas ferramentas e integrações.
Fontes que utilizei para alcançar esse resultado:
Top comments (2)
Grande mestre Danilo, compartilhando todo o seu conhecimento! Curti demais o post!
Achei muito legal a forma como você integrou tudo com o systemd — ficou direto ao ponto e fácil de seguir.
Mandou bem demais! Valeu por compartilhar! 👊
A integração fica bem bacana mesmo. Muito obrigado!
Some comments may only be visible to logged-in visitors. Sign in to view all comments.