如何通过docker run启动一个pod

既然k8s 底层是支持Docker runtime的,那么我们自然也可以通docker run 的方式启动一个Pod 。

如何通过docker run启动一个pod

文章插图
 
首先我们创建一个Pod 级别的cgroup
sudo cgcreate -g cpu,memory:/pod-foo# 查看创建的 cgroupls -l /sys/fs/cgroup/cpu/pod-foo/ls -l /sys/fs/cgroup/memory/pod-foo/启动我们的sandbox 容器
docker run -d --rm--name foo_sandbox--cgroup-parent /pod-foo--ipc 'shareable'alpine sleep infinity通过cgroup-parent 指定 cgroup
然后启动我们的业务容器
$ docker run -d --rm--name App--cgroup-parent /pod-foo--network container:foo_sandbox--ipc container:foo_sandboxkennethreitz/httpbin主要是通过 --network 共享sandbox 网络,通过 --ipc 共享sandbox ipc 。
如果有必要的话,我们还可以启动一个sidecar 容器
$ docker run -d --rm--name sidecar--cgroup-parent /pod-foo--network container:foo_sandbox--ipc container:foo_sandboxcurlimages/curl sleep 365d
【如何通过docker run启动一个pod】


    推荐阅读