Hacker News new | ask | show | jobs
by jcastro 1481 days ago
Is there any config to set up this way or do you literally just run podman on the socket and it just knows what to do?
2 comments

You can set it as systemd socket service, so it doesn’t even run until something tries to connect.

That said, I don’t even bother with that. Podman can run K8s configs, and they are yaml too, only slightly more verbose than a compose file, if you strip everything out you don’t need. The CLI is nicer than compose too, with proper commands instead of tying up a terminal until a ctrl-c.

So you can use kubectl but it talks to podman and not to the api of a k8s cluster? Or does it have its own cli?
There's apparently a 'podman play kube' command that can take some k8s yaml like pod descriptions and instantiate them directly: https://docs.podman.io/en/latest/markdown/podman-play-kube.1... I hadn't heard of this until now but it sounds pretty nifty!
Exactly. Here's a pod.yaml I use for testing a service at work:

https://gist.github.com/pkulak/d22407b887461b416891b78fb3793...

It can probably be even more concise, but I stopped stripping stuff out here.

> There's apparently a 'podman play kube' command that can take some k8s yaml like pod descriptions and instantiate them directly

Wow that's a heck of a killer feature.

Once Podmam implements a replacement for Docker's docker swarm, Docker is effectively deprecated.

I honestly wouldn't put much faith in swarm being viable for long. Mirantis basically stopped working on it before they broke docker apart. The current docker company seems much more focused on developer experience tooling, not distributed systems. There are some longstanding swarm issues and bugs, particularly with changing configurations or one time jobs, that will probably never be fixed. I'd go straight to kubernetes and skip swarm personally. Stuff like k3s make kubernetes much easier to deploy at a small scale. Or I'd look at Hashi's nomad if something about k8s was really a blocker.
As a fun fact, you can also run:

    $ systemctl --user enable --now podman.socket
    $ export DOCKER_HOST=unix:///run/user/$UID/podman/podman.sock
and get a rootless, Docker-compatible socket. If you're running, e.g., a test suite written against the Go Moby APIs, this will execute the containers with Podman rather than with the system daemon.