Multi-Container Pod

一个pod里面可以定义多个container,这种pod叫Multi-container pod,这些container共享同一个IP和volume:

image-20200118152406245

创建multi-container pod

直接在containers下面定义即可:

apiVersion: v1
kind: Pod
metadata:
  name: mywebserver
spec:
  containers:
    - name: container1
      image: nginx
    - name: container2
      image: busybox
      command: ["sleep", "3600"]

kubectl apply -f xxx.yaml之后,查看pods:

image-20200316221406247

  • READY状态为2/2,表明有两个容器,且两个容器都正常运行。
  • describe pod后,可以列出两个容器的信息。

此时进入容器的bash,由于有两个容器,默认进入第一个:

image-20200316221502811

root@mywebserver:/# apt update && apt install net-tools

安装net-tools后查看nginx容器的IP和开放端口:

image-20200118154056015

此时进入另一个busybox容器,查看容器和端口,发现IP和开放端口与nginx的一模一样:

image-20200118154155610

甚至wget localhost也能返回结果。

从而验证了一点:同一个pod下的多个容器共享一个IP和所有端口。