研发工程师玩转Kubernetes——使用hostPath在同一个Node不同Pod间共享数据

大纲

有别于《研发工程师玩转Kubernetes——使用emptyDir在同一Pod不同容器间共享数据》一文中介绍的emptyDir,hostPath可以在同一个Node的不同Pod间共享卷。
在这里插入图片描述
下面的清单文件利用了Pod亲和性,让Pod集中到一个Node上。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hostpath-deployment
spec:
  selector:
    matchLabels:
      app: hostpath-container
  replicas: 2
  template:
    metadata:
      labels:
        app: hostpath-container
    spec:
      affinity:
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
                matchExpressions:
                - key: app
                  operator: In
                  values:
                  - hostpath-container
            topologyKey: "kubernetes.io/hostname"
      containers:
      - name: hostpath-container
        image: busybox
        command: ["/bin/sh", "-c" ,"if [ -f /tempdir/lockfile ] && ! { set -C; 2>/dev/null >/tempdir/lockfile; }; then tail -f /tempdir/lockfile; else exec 3>/tempdir/lockfile; if [ -n \"$POD_NAME\" ]; then name=$POD_NAME; else name=\"unknown\"; fi; while true; do echo \"this is $name.$name write something to lockfile\"; echo \"$name write something to lockfile\" >&3; sleep 5; done; fi"]
        volumeMounts:
        - name: hostpath-volume
          mountPath: /tempdir
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
      volumes:
      - name: hostpath-volume
        hostPath:
          path: /tmp
          type: Directory

我们观察创建的两个Pod中文件的内容

kubectl exec pods/hostpath-deployment-65cddc7df8-9qtlv -it -- tail -f /tempdir/lockfile

hostpath-deployment-65cddc7df8-9qtlv write something to lockfile
hostpath-deployment-65cddc7df8-9qtlv write something to lockfile
hostpath-deployment-65cddc7df8-9qtlv write something to lockfile
……

kubectl exec pods/hostpath-deployment-65cddc7df8-ltbgs -it -- tail -f /tempdir/lockfile

hostpath-deployment-65cddc7df8-9qtlv write something to lockfile
hostpath-deployment-65cddc7df8-9qtlv write something to lockfile
hostpath-deployment-65cddc7df8-9qtlv write something to lockfile
……

可以看到它们的文件内容一样,即可以证明它们可以共享同一个文件。
我们在hostpath映射的宿主机目录/tmp下可以找到lockfile文件,且其内容也是明文可读的。
在这里插入图片描述

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

breaksoftware

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值