Kubernetes数据持久化(案例)

在Kubernetes中,数据卷用于持久化容器数据。hostPath直接将主机目录挂载到Pod,而PersistentVolumes支持更复杂的存储解决方案如NFS,提供跨节点的数据持久化。通过PersistentVolumeClaim,用户可以请求特定存储需求并挂载到Pod。
摘要由CSDN通过智能技术生成

在Kubernetes中使用数据卷可以将数据持久化到主机上,以便在容器中重新启动后数据不会丢失。对接数据卷可以使用hostPath或者Persistent Volumes两种方式。

hostPath的使用

hostPath是直接在主机上创建一个目录,然后将该目录挂载到Pod中,从而实现对数据的持久化。

创建一个目录,用于存储数据

sudo mkdir /data/mysql

创建一个Pod,并将该目录挂载到Pod中

apiVersion: v1
kind: Pod
metadata:
  name: mysql
spec:
  containers:
  - name: mysql
    image: mysql:5.7
    volumeMounts:
    - name: mysql-data
      mountPath: /var/lib/mysql
  volumes:
  - name: mysql-data
    hostPath:
      path: /data/mysql

我们创建了一个Pod,并将/data/mysql目录挂载到了Pod中的/var/lib/mysql目录下。

当Pod重新启动时,数据就会保留在主机上的/data/mysql目录中。 

Persistent Volumes的使用

 Persistent Volumes可以将数据持久化到独立的存储设备上,比如NFS、iSCSI等。

创建一个Persistent Volume,用于存储数据

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  nfs:
    server: 192.168.1.100
    path: /data/mysql

创建了一个Persistent Volume,将数据存储到了NFS服务器的/data/mysql目录下。 

创建一个Persistent Volume Claim


apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

创建了一个Persistent Volume Claim,它请求了10GB的存储空间,并且要求只能被一个Pod挂载。

创建一个Pod,并将Persistent Volume Claim挂载到Pod中

apiVersion: v1
kind: Pod
metadata:
  name: mysql
spec:
  containers:
  - name: mysql
    image: mysql:5.7
    volumeMounts:
    - name: mysql-data
      mountPath: /var/lib/mysql
  volumes:
  - name: mysql-data
    persistentVolumeClaim:
      claimName: mysql-pvc

创建了一个Pod,并将mysql-pvc挂载到了Pod中的/var/lib/mysql目录下。这样,当Pod重新启动时,数据就会保留在mysql-pv中,即使Pod所在的节点发生故障,数据也不会丢失。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

赵唯一

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

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

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

打赏作者

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

抵扣说明:

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

余额充值