L33thium Posté(e) le 4 juin 2023 Partager Posté(e) le 4 juin 2023 La doc Redhat me semblant très confuse et incitant aux pires manières possible à mon avis, je nous propose ce petit topic pour m'aider ^^ Je suis sous Debian Bookworm mais il n'y a rien de spécifique à la distro, du moment que podman est installé. Je créé mes containers de différentes manières (podman-compose pour nextcloud par exemple et directement avec cockpit pour nginx-proxy-manager) Tout se fait à peu près comme avec docker à cette étape. Les grandes questions viennent après : démarrage avec le système, rendre les container/pods rapidement reproductible et les mises à jour. Et là c'est la jungle je trouve, dans la doc qui rends tout ça très compliqué je trouve alors que c'est finalement très simple. D'abord la reproductibilité, une fois que mes bricolages fonctionnent enfin, comment je rends ça déployable facilement et rapidement ? J'ai trouvé que la voie du kube était la plus évidente, mais la moins bien documentée. Podman est 100% compatible OCI, donc Kubernetes, ça en fait donc une super passerelle entre docker et k8s et ça facilite grandement la tâche si jamais le besoin de changer d’échelle se fait sentir. Bref une fois que j'ai un container ou pod fonctionnel avec les bon mappage de ports, volumes, ... de nextcloud par exemple : podman kube generate nextcloud ~/containers/nextcloud.yml Pour assurer la mise à jour automatique j’édite le fichier yaml généré pour ajouter dans les annotations io.containers.autoupdate: "registry" après je supprime le container ou le pod concerné et : podman kube play ~/containers/nextcloud.yml qui va recréer tout ça (si c’était un simple container il créera un pod) qui va nous permettre de passer à la suite. l'autoupdate ajouté en annotation va permettre au service podman-auto-update de vérifier chaque nuit les nouvelles images et mettre à jour si disponible (un roll-back est possible en cas de problème mais j'ai pas encore creusé la question). deux problèmes reglés. Démarrage automatique avec l'hôte : Podman ne repose pas sur un daemon central, donc les pods doivent devenir des services systemd pour être gérés par l'hôte. D'emblée on trouve podman generate systemd ... mais ça ne marche pas correctement avec les kubes. Au lieu de ça il y a une template systemd. Donc pour créer notre service : escaped=$(systemd-escape ~/containers/nextcloud.yml) systemctl enable podman-kube@$escaped.service systemctl start podman-kube@$escaped.service Et voilà, le pod démarrera et rebootera avec l'hôte, il se gère comme n'importe quel autre service. (Le pod doit être un service systemd pour être mis à jour en automatique) Si j'ai besoin de modifier des paramètres, je peux éditer le fichier yaml un peu comme un docker compose et puis : podman kube down nextcloud.yml podman kube play nextcloud.yml On peut aussi ajouter des containers aux pods par la voie qui nous chante et repasser par la case generate. Ce sujet n'est pas vraiment un tuto, je ne maitrise pas tout donc il est évidemment ouvert aux remarques, ajouts et questions. 2 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
L33thium Posté(e) le 4 juin 2023 Auteur Partager Posté(e) le 4 juin 2023 erreur pour la fin. Si on modifie le yaml du kube déjà mis en service systemd, un simple systemctl restart podman-kube@-root-containers-nc.yml.service (nom du service différent selon où vous avez mis le fichier) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
L33thium Posté(e) le 4 juin 2023 Auteur Partager Posté(e) le 4 juin 2023 Comme c'est une mise à jour de podman 3 à 4, il m'a fallut installer netavark et aardvark et créer /etc/containers/containers.conf J'ai ai profité pour ajouter l'annotation pour l'autoupdate qui sera du coup présente par défaut pour tout kube généré sur cet hôte. [Network] network_backend="netavark" [containers] annotations = ["io.containers.autoupdate=registry"] Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.