3.4Pod容器共享Volume

文章讲述了如何在一个Pod中配置多个容器共享同一个存储卷Volume,如emptyDir类型的app-logs,用于Tomcat写入日志并供Busybox读取。通过kubectl管理容器的日志操作得以实现跨容器数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

在这里插入图片描述

在下面的例子中,pod内包含2个容器:tomcat和busybox,在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(也可以设置为其他类型)
挂载到tomat容器内的/usr/local/tomcat/logs目录下,
同时挂载到busybox容器内的/logs目录下。

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

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

kubectl logs volume-pod -c busybox

这个文件为tomcat生成的日志文件
/usr/local/tomcat/logs/catalina.<data>.log
的内容。

登陆tomcat容器进行查看:

kubectl exec -it volume-pod -c tomcat --ls 
kubectl exec -it volume-pod -c tomcat --tail /usr/local/tomcat/logs/catalina.2020-07-29.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值