GCEならDocker on Container Optimized OSでいいじゃんって意見は黙殺します。
なお、GCEとは書いてますがcentos7であれば恐らくどこでやっても一緒です。
やること
GCE上でpodmanコンテナをビルドして動かして喜ぶ
環境
Centos7(kernel3系)
podman 1.6.4
やんごとなき事情によりGKE(k8s)は利用しません。
記載のversionは、「このversionから」ではなく、「少なくとも自分が確認したときのversion」です。
v1.3.2
yum install -y podman
だけでDockerfileからbuild,runがうまくいってたはず…
v1.4.4
podmanの他にslirp4netns
もインストールする必要があるようです。
また、
https://www.redhat.com/ja/blog/preview-running-containers-without-root-rhel-76
にあるように
echo 10000 > /proc/sys/user/max_user_namespaces
の実行も必要です。
当然ながら/proc
下なので再起動とかすると吹っ飛びます。
v1.6.4
v1.4.4の対処だけだと動かず。
centos7のkernelである3系だとfusermount3: mount failed: Operation not permitted
が出るようになってました。
これを踏んだ場合kernelをアップデートする必要があるようです。
elrepo-kernel
からmlインストールしてと関連パッケージをswapって流れでいけます。
少なくともkernel5.6.7-1
ではいけました。
--log-driver
https://github.com/containers/libpod/blob/master/completions/bash/podman
でgcplogs
をcompgenで作成してるからいけるんかなーと思って少し戦いましたが、
http://docs.podman.io/en/latest/markdown/podman-run.1.html
少なくとも現行だと対応してないようです。
cloud loggingに転送したい場合--log-opt
でログのファイルパス指定してそいつをfluentdやらでカッ飛ばす、とかしか今は無理かと思います。
あと、log-driverにjournald指定したらpathに指定したファイルに吐かれなくなりました。
認証ヘルパー
設定してみたけど普通に認証エラーでハネられたので多分まだ無理なんじゃないかなあ…
まとめ
log-driverと認証ヘルパーの対応はよお願いしますれっどはっとさん