はじめに
Podmanで以前生成したPodのManifestを使ってminikubeに持って行った時に、PersistentVolumeがみつからないと怒られる事象に遭遇しました。実際に作成していないのでそりゃあその通りなのですが、じゃあPodmanの時ってなんで動いてたんだろう。というのを調べてみました。
こちらが前回の話
目次
現状確認
PodmanDesktopで現状を確認すると、作った覚えのないVolumeが、、ある。。
PodのManifest定義を確認すると、こちらもPVCの記載はありました。
Volumes関連で記載したのは下記だけなので、ここからどうやら自動的にPVがMountsされている模様
volumes:
- name: wordpress_wordpress-pvc
persistentVolumeClaim:
claimName: wordpress_wordpress
- name: wordpress_db-pvc
persistentVolumeClaim:
claimName: wordpress_db
コンテナ側のMounts情報を参照すると、こちらにもVolumeMount確かにありました。
ちゃんとマウントされています。
つまりPodmanはpersistentVolumeClaimの記載だけあればPodman側で永続データに配慮してくれるという仕様のようです(Podman v4.3.0時点)。
何が起きてたのか?
GitHubの中を漁ってみた感じ、結構前から使えるように動いていたみたいです。知らんかった。。
このコマンドを打った時に勝手に作ってくれたみたいですね。
podman play kube kubernetes-hybrid.yml
これらを参考にリリースノートも参考にしましたが正確な追加の時期はわかりませんでした。
IssueNoからたぶん3系の途中で使えるようになったのかな。。(正しい探し方教えてください)
リリースノートを見ると毎回かなりのバグ修正を機能追加が行われており、現在も非常に活発なコミュニティとなっています。Dockerよりもアクティブなのではないでしょうか。今後のPodmanの利便化に期待したいです。
まとめ
Podmanの新設機能でPVは意識しなくても勝手によくやってくれるということ。
PodのManifestだけあれば、どの開発端末つかっても暗黙的にPVを作ってくれるので環境を頻繁に更新する開発などの場合は非常に楽です。コンテナ、Pod入門者に優しいのかと言われると少し悩ましいところでもあります。Podmanのシェアはまだまだ低いとおもうので、k8s側やminikubeなど環境の異なるユーザとの意思疎通には注意が必要な点だけ考慮して利用するのがよさげだ思います。
Dockerもこの便利機能今はあるのだろうか。。たしかdocker-composeは似た挙動になった記憶はあるようなーー
今回はPodmanDesktopを使って調べましたが手っ取り早く状況を確認するのにはとても便利でした。