Podman com Quadlets em produção

← ← ←   08/06/2025, 12:06:13 | Postado por: Danilo Maia Florenzano


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:


  1. Criei um pod com os contêineres necessários.

  2. Gerei um arquivo YAML para Kubernetes a partir do pod:

    podman generate kube xpto-pod -f /tmp/my_pod_kube.yaml
    
  3. 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.

  4. Movi o arquivo para a pasta correta:

    sudo mv xpto-pod.kube /etc/containers/systemd/
    
  5. Recarreguei os serviços do systemd:

    sudo systemctl daemon-reexec
    sudo systemctl daemon-reload
    
  6. 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: