0
点赞
收藏
分享

微信扫一扫

k8s数据卷

Java架构领域 2023-03-12 阅读 70

为什么需要数据卷

容器中的文件在磁盘上是临时存在,这给容器中运行一些重要的程序的时候有影响

  • 问题1: 当容器升级或者崩溃的时候,kubelet会重建容器,容器内的文件丢失
  • 问题2: 一个容器中运行多个容器,可能需要文件共享

k8s的卷(volumn)这一抽象概念可以解决这个问题

常用的数据卷类型

  • 节点本地 hostPath emptyDir
  • 网络 NFS Ceph ClusterFs
  • 公有云 AWS EBS
  • k8s资源 configMap Secret

emptyDir卷类型

emptyDir是一个临时存储卷,与pod的生命周期绑在一起,删除pod,emptyDir卷也会被随之删除。

应用场景: pod容器之间数据共享

apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- name: write
image: centos
command: ["bash","-c","for i in {1..100};do echo $i >> /data/hello;sleep 1;done"]
volumeMounts:
- name: data
mountPath: /data
- name: read
image: centos
command: ["bash","-c","tail -f /data/hello"]
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
emptyDir: {}

寻找emptyDir在宿主机上挂载的位置的方式:

1、查看pod分布在哪个节点上

# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
test 2/2 Running 0 64s 10.244.169.141 k8s-node2 <none> <none>

2、到相应的节点查看docker 容器

# docker ps -a |grep "podName"

k8s数据卷_docker

3、查看挂载目录

k8s数据卷_docker_02

hostPath卷类型





举报

相关推荐

0 条评论