4. Pod容器共享Volume

同一个Pod中的多个容器能够共享Pod级别存储卷Volume

Volume可以被定义为各种类型,多个容器各自进行挂载操作,将一个Volume挂载为容器内部需要的目录,如图3.2所示。

图3.2 Pod中多个容器共享Volume:

4. Pod容器共享Volume_第1张图片

在下面的例子中,在Pod内包含两个容器tomcatbusybox,在Pod级别设置Volume“app-logs”,用于tomcat向其中写日志文件busybox读日志文件

配置文件pod-volume-applogs.yaml的内容如下:

apiVersion: v1
kind: Pod
metadata:
  name: volume-pod
spec:
  containers:
  - name: tomcat
    image: tomcat
    ports:
    - containerPort: 8080
    volumeMounts:
    - name: app-logs
      mountPath: /usr/local/tomcat/logs
  - name: busybox
    image: busybox
    command: ["sh", "-c", "tail -f /logs/catalina*.log"]
    volumeMounts:
    - name: app-logs
      mountPath: /logs
  volumes:
  - name: app-logs
    emptyDir: {}

这里设置的Volume名app-logs,类型为emptyDir(也可以设置为其他类型,详见第1章对Volume概念的说明),挂载tomcat容器内的/usr/local/tomcat/logs目录,同时挂载busybox容器内的/logs目录

tomcat容器启动后会向/usr/local/tomcat/logs目录写文件,busybox容器就可以读取其中的文件了。

busybox容器的启动命令为tail -f /logs/catalina*.log,我们可以通过kubectl logs命令查看busybox容器的输出内容:

4. Pod容器共享Volume_第2张图片

这个文件为tomcat生成的日志文件/usr/local/tomcat/logs/catalina..log的内容。登录tomcat容器进行查看:

4. Pod容器共享Volume_第3张图片

你可能感兴趣的:(4. Pod容器共享Volume)