iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Kubernetes使用PVC后数据丢失怎么解决
  • 225
分享到

Kubernetes使用PVC后数据丢失怎么解决

2023-07-05 11:07:51 225人浏览 泡泡鱼
摘要

今天小编给大家分享一下kubernetes使用PVC后数据丢失怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。问题现象

今天小编给大家分享一下kubernetes使用PVC后数据丢失怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

问题现象

使用官方postgresql镜像,通过pvc将云硬盘挂载至数据目录,每次重建Pod,数据库数据都会丢失。

复现

apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: postgresql-persistent-storage  namespace: defaultspec:  acceSSModes:  - ReadWriteOnce  resources:    requests:      storage: 10Gi  storageClassName: cbs  volumeMode: Filesystem---apiVersion: apps/v1kind: Deploymentmetadata:  name: postgresql-deploymentspec:  selector:    matchLabels:      app: postgresql  template:    metadata:      labels:        app: postgresql    spec:      containers:      - image: postgres:12.4        name: postgresql        env:        - name: POSTGRES_PASSWord          value: "123456"        ports:        - containerPort: 5432          name: postgresql        volumeMounts:        - name: postgresql-persistent-storage          ## 注意挂载点          mountPath: /var/lib/postgresql      volumes:      - name: postgresql-persistent-storage        persistentVolumeClaim:          claimName: postgresql-persistent-storage

使用上述提供的 yaml创建工作负载,完成后可看到 Pod 正常运行。

Kubernetes使用PVC后数据丢失怎么解决

根据Dockerhub官方镜像的说明中,镜像数据库文件存储的默认目录为/var/lib/postgresql/data

Kubernetes使用PVC后数据丢失怎么解决

上述yaml中,将持久化存储挂载到/var/lib/postgresql,看似无问题,容器也可以正常启动,但是其实数据库文件并没有写入 PVC 中,当 Pod 发生重启重新调度时,数据库文件便会丢失。

问题分析

进入 Pod, 通过 findmnt命令,可以清楚地看到数据库存储文件并未保存在数据盘中,而是使用 volume 的方式挂载,被挂载到了/dev/vda1中,所以导致 Pod 重启时,该目录被自动释放,数据丢失。

Kubernetes使用PVC后数据丢失怎么解决

那是什么原因造成的呢?

我们登录 Pod 所在的节点

通过docker history --no-trunc postgres:12.4查看镜像的构建历史发现,此镜像构建所使用的 Dockerfile使用了 VOLUME命令,手工挂载了/var/lib/postgresql/data

Kubernetes使用PVC后数据丢失怎么解决

Dockerfile构建后的镜像中,VOLUME中的操作并不会被Kubernetes忽略,而是会继续挂载。

即先挂载kubelet给加的volume,后挂载image.config.volumesimage.config.volumes不会覆盖掉kubeletvolume

如需要将其使用 PVC 覆盖目录,必须手工指定 PVC 的挂载点与其同地址,即将volumeMounts中的mountPath/var/lib/postgresql调整为/var/lib/postgresql/data

apiVersion: apps/v1kind: Deploymentmetadata:  name: postgresql-deploymentspec:  selector:    matchLabels:      app: postgresql  template:    metadata:      labels:        app: postgresql    spec:      containers:      - image: postgres:12.4        name: postgresql        env:        - name: POSTGRES_PASSWORD          value: "123456"        ports:        - containerPort: 5432          name: postgresql        volumeMounts:        - name: postgresql-persistent-storage          mountPath: /var/lib/postgresql/data      volumes:      - name: postgresql-persistent-storage        persistentVolumeClaim:          claimName: postgresql-persistent-storage

Kubernetes使用PVC后数据丢失怎么解决

新建测试文件,并删除 Pod 后测试数据写入

Kubernetes使用PVC后数据丢失怎么解决

以上就是“Kubernetes使用PVC后数据丢失怎么解决”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Kubernetes使用PVC后数据丢失怎么解决

本文链接: https://www.lsjlt.com/news/351139.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Kubernetes使用PVC后数据丢失怎么解决
    今天小编给大家分享一下Kubernetes使用PVC后数据丢失怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。问题现象...
    99+
    2023-07-05
  • 一文解析Kubernetes使用PVC后数据丢失
    目录问题现象复现问题分析问题现象 使用官方postgresql镜像,通过pvc将云硬盘挂载至数据目录,每次重建Pod,数据库数据都会丢失。 复现 apiVersion: v1 ki...
    99+
    2023-03-09
    Kubernetes PVC数据丢失 Kubernetes PVC
  • gitlab13升级后数据丢失怎么解决
    随着云计算的发展,越来越多的企业将其软件部署在云上,GitLab作为一个代码托管平台,也成为了众多企业的首要选择之一。但在升级GitLab 13后,有些用户发现他们的数据被删除了,这是令人非常困扰的问题。GitLab 13增加了许多新功能,...
    99+
    2023-10-22
  • docker容器重启后数据丢失怎么解决
    当Docker容器重启后数据丢失的问题,可以通过以下几种方式来解决: 挂载数据卷(Volume):使用Docker的数据卷功能,...
    99+
    2023-10-27
    docker
  • mq丢失数据怎么解决
    当MQ(消息队列)丢失数据时,可以采取以下几个方法来解决: 检查MQ配置:首先,确保MQ的配置是正确的,包括消息的持久化配置和重...
    99+
    2023-10-26
    mq
  • unraid重启后docker数据丢失如何解决
    如果在重启 Unraid 后遇到 Docker 数据丢失的问题,有一些可能的解决办法:1. 检查 Unraid 配置:确保 Unra...
    99+
    2023-09-09
    docker
  • kubernetes数据持久化PV和PVC怎么配置
    这篇“kubernetes数据持久化PV和PVC怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“kubernetes数...
    99+
    2023-07-04
  • 使用厦门服务器数据丢失了怎么解决
    使用厦门服务器数据丢失了解决的方法:1、如果是误删除或格式化,可以在网上下载恢复软件来恢复数据;2、如果是服务器数据丢失,不要盲目操作,先关机停止硬盘读写数据,然后寻找正规的数据恢复公司或请专业技术人员检查;3、如果是机房的硬件损坏,则需要...
    99+
    2024-04-02
  • 解决vuex数据丢失问题
    目录数据丢失的原因方法1:使用第三方库 vuex-persistedstate01 store / index.js 之 localStorage02 store / index.j...
    99+
    2023-02-02
    vuex 数据丢失
  • vue使用query传参页面刷新数据丢失怎么解决
    本篇内容介绍了“vue使用query传参页面刷新数据丢失怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!vue路由传参(使用query...
    99+
    2023-07-06
  • java重定向后session丢失怎么解决
    当使用重定向后,会新建一个请求,而会话(session)是与请求绑定的,所以在重定向后会丢失会话。解决该问题有以下几种方法:1. 使...
    99+
    2023-10-10
    java session
  • Redis数据丢失如何解决
    这篇文章将为大家详细讲解有关Redis数据丢失如何解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。什么是 AOF 日志?AOF(Append Only F...
    99+
    2024-04-02
  • linux中redis重启数据丢失怎么解决
    在Linux环境中,如果Redis重启导致数据丢失,可以尝试以下解决方法: 启用持久化功能:在Redis配置文件中开启RDB持久...
    99+
    2024-04-09
    linux redis
  • oracle重启数据库后数据丢失怎么找回
    如果在Oracle数据库重启后发现数据丢失,可以尝试以下方法找回数据: 检查数据库日志文件:查看数据库的日志文件,看是否有任何错...
    99+
    2024-04-09
    oracle 数据库
  • vuex页面刷新数据丢失怎么解决
    今天小编给大家分享一下vuex页面刷新数据丢失怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。为什么说刷新页面vuex...
    99+
    2023-06-29
  • nginx header参数丢失怎么解决
    当Nginx处理请求时,它会根据其配置文件来确定如何处理请求头。如果您发现某些请求头参数丢失,可以尝试以下解决方法: 检查Ngi...
    99+
    2024-02-29
    nginx
  • oracle decimal小数丢失怎么解决
    在Oracle中,存储小数时可能会出现精度丢失的问题,这可能是因为数据类型选择不当或计算过程中的精度丢失。以下是一些解决方法: ...
    99+
    2024-04-09
    oracle
  • php redis数据丢失如何解决
    本文小编为大家详细介绍“php redis数据丢失如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“php redis数据丢失如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。php redis数据丢失...
    99+
    2023-07-04
  • uniapp更新以后用户信息丢失怎么解决
    随着移动应用的普及,很多公司开始转向多平台开发,以满足不同用户需求。而Uniapp成为了众多开发工具之一。然而,最近有一些用户反馈,在升级Uniapp版本时,会导致用户信息丢失的问题。本文将详细探讨这个问题,并提供一些解决方案。首先,让我们...
    99+
    2023-05-14
  • node.dll丢失怎么解决
    这篇文章主要介绍了node.dll丢失怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇node.dll丢失怎么解决文章都会有所收获,下面我们一起来看看吧。丢失“node.dll”的意思是缺少动态链接库文件...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作