初识podman中的pod功能

2022-04-10 • 预计阅读时间 2 分钟

PodsKubernetes容器的最小部署单元了.Podman也提供了类似的支持.虽然用podman-compose也能几乎一致的效果.但是这个从便捷、安全还有后期向k8s迁移上都可以说是一个很好的概念.具体的架构如下:

podman-pod-architecture

使用podmanpod功能的话,需要提前确认是否安装了catatonit

常用命令

创建一个pod

sudo podman pod create -n test-pod
850580d6a80befc5efd015213f5887c750577988bbd4bb753e0a5f4a1037e1f7

列出所有的pod

∴ sudo podman pod list
POD ID        NAME        STATUS      CREATED             INFRA ID      # OF CONTAINERS
850580d6a80b  test-pod    Created     About a minute ago  5b40275320b0  1

添加一个容器到pod

把一个top的容器添加到之前创建的名为test-podpod

sudo podman run -dt --pod test-pod docker.io/library/alpine:latest top

此外pod也支持ps等命令具体如下:

$ sudo podman pod

NAME:
   podman pod - Manage container pods.


Pods are a group of one or more containers sharing the same network, pid and ipc namespaces.

USAGE:
   podman pod command [command options] [arguments...]


COMMANDS:
    create        Create a new empty pod
    exists        Check if a pod exists in local storage
    inspect       displays a pod configuration
    kill          Send the specified signal or SIGKILL to containers in pod
    pause         Pause one or more pods
    ps, ls, list  List pods
    restart       Restart one or more pods
    rm            Remove one or more pods
    start         Start one or more pods
    stats         Display percentage of CPU, memory, network I/O, block I/O and PIDs for containers in one or more pods
    stop          Stop one or more pods
    top           Display the running processes of containers in a pod
    unpause       Unpause one or more pods

OPTIONS:
   --help, -h  show help

总结

有了以上命令以后,把需要组合在一起的容器放到一个pod以后就可以很方便的启停了控制网络等.在不支持deploy.yaml之前,可能还是期待podman-compose尽快完善功能吧.不然以当下的情况,只能在一些有限容器的情况下使用.

但是在最新的4.0+的版本中,可以通过这pod可以搭配systemd使用.使得使用的场景变多了.

softpodman

wentao

写点代码,解决点问题。

Emacs在windows上使用native compilation

Capabilities vs Maturity