來說說.pod與.kube,用這兩個像在單體系統上模擬k8s的運作。
這兩者與.container的差異如下:
| 類型 | 主要用途 | 約等於什麼 Podman 指令 | 適合情境 |
|---|---|---|---|
.container |
管理單一 container | podman run ... |
Spring Boot、nginx 這種一服務一容器 |
.pod |
建立/管理 Pod | podman pod create ... |
多個 container 要共用 network namespace / localhost |
.kube |
執行 Kubernetes YAML | podman kube play xxx.yaml |
已有 Deployment/Pod YAML,或想用 Kubernetes 格式描述整組服務 |
[Pod]
PodName=a2a
PublishPort=8443:8443
[Install]
WantedBy=default.target
而每個.container檔的[Container]Section下加一個Pod指向a2a.pod,例:
[Container]
Image=localhost/a2a-api:latest
Pod=a2a.pod
用法蠻像Network=a2a-net一樣單純。
經過systemctl --user daemon-reload後,a2a.pod本身可以像service被systemd操作。systemctl --user [start|stop|restart|status|cat] a2a.pod。
所有.container的[Container]有指定Pod=a2a者,會跟著a2a.pod共進退。
至於.kube,留到明天充篇幅,事實上概念與.pod和.container也差異不小。