最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文解析Kubernetes使用PVC后數(shù)據(jù)丟失

 更新時間:2023年03月09日 08:49:47   作者:Honest1y  
這篇文章主要為大家介紹了Kubernetes使用PVC后數(shù)據(jù)丟失原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

問題現(xiàn)象

使用官方postgresql鏡像,通過pvc將云硬盤掛載至數(shù)據(jù)目錄,每次重建Pod,數(shù)據(jù)庫數(shù)據(jù)都會丟失。

復現(xiàn)

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgresql-persistent-storage
  namespace: default
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: cbs
  volumeMode: Filesystem

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgresql-deployment
spec:
  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創(chuàng)建工作負載,完成后可看到 Pod 正常運行。

根據(jù)dockerhub官方鏡像的說明中,鏡像數(shù)據(jù)庫文件存儲的默認目錄為/var/lib/postgresql/data

上述yaml中,將持久化存儲掛載到/var/lib/postgresql,看似無問題,容器也可以正常啟動,但是其實數(shù)據(jù)庫文件并沒有寫入 PVC 中,當 Pod 發(fā)生重啟重新調(diào)度時,數(shù)據(jù)庫文件便會丟失。

問題分析

進入 Pod, 通過 findmnt命令,可以清楚地看到數(shù)據(jù)庫存儲文件并未保存在數(shù)據(jù)盤中,而是使用 volume 的方式掛載,被掛載到了/dev/vda1中,所以導致 Pod 重啟時,該目錄被自動釋放,數(shù)據(jù)丟失。

那是什么原因造成的呢?

我們登錄 Pod 所在的節(jié)點

通過docker history --no-trunc postgres:12.4查看鏡像的構建歷史發(fā)現(xiàn),此鏡像構建所使用的 Dockerfile使用了 VOLUME命令,手工掛載了/var/lib/postgresql/data

Dockerfile構建后的鏡像中,VOLUME中的操作并不會被Kubernetes忽略,而是會繼續(xù)掛載。

即先掛載kubelet給加的volume,后掛載image.config.volumes,image.config.volumes不會覆蓋掉kubeletvolume

如需要將其使用 PVC 覆蓋目錄,必須手工指定 PVC 的掛載點與其同地址,即將volumeMounts中的mountPath/var/lib/postgresql調(diào)整為/var/lib/postgresql/data。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgresql-deployment
spec:
  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 

新建測試文件,并刪除 Pod 后測試數(shù)據(jù)寫入

以上就是一文解析Kubernetes使用PVC后數(shù)據(jù)丟失的詳細內(nèi)容,更多關于Kubernetes PVC后數(shù)據(jù)丟失的資料請關注腳本之家其它相關文章!

相關文章

  • 青龍面板拉庫解決沒有或丟失依賴can‘t?find?module的保姆級教程(附青龍面板腳本倉庫)

    青龍面板拉庫解決沒有或丟失依賴can‘t?find?module的保姆級教程(附青龍面板腳本倉庫)

    這篇文章主要介紹了青龍面板拉庫解決沒有或丟失依賴can‘t?find?module的保姆級教程(附青龍面板腳本倉庫),需要的朋友可以參考下
    2022-05-05
  • kubernetes日志備份解決ELK中日志丟失問題

    kubernetes日志備份解決ELK中日志丟失問題

    這篇文章主要為大家介紹了kubernetes日志備份方案的細節(jié)探究分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Kubernetes教程之Windows?HostProcess?運行容器化負載

    Kubernetes教程之Windows?HostProcess?運行容器化負載

    這篇文章主要介紹了Kubernetes?Windows?HostProcess?運行容器化負載,本篇內(nèi)容還是比較多的,總共包含了?Windows?HostProcess的創(chuàng)建、為?Windows?Pod?和容器配置?GMSA?和?Windows?的?Pod?和容器配置?RunAsUserName三大功能模塊,需要的朋友可以參考下
    2022-07-07
  • 虛擬化和云計算的區(qū)別分析

    虛擬化和云計算的區(qū)別分析

    這篇文章主要介紹了虛擬化和云計算的區(qū)別,深入淺出的列舉分析了虛擬化與云計算的幾點常見區(qū)別,需要的朋友可以參考下
    2016-10-10
  • kubernetes存儲之GlusterFS集群詳解

    kubernetes存儲之GlusterFS集群詳解

    最近工作中用到了GlusterFS作為Kubernetes的存儲,這篇文章主要給大家介紹了關于kubernetes存儲之GlusterFS集群的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • kubernetes k8s 存儲動態(tài)掛載配置詳解

    kubernetes k8s 存儲動態(tài)掛載配置詳解

    這篇文章主要為大家介紹了kubernetes k8s 存儲動態(tài)掛載配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • kubernetes(k8s)中Yaml文件詳解

    kubernetes(k8s)中Yaml文件詳解

    這篇文章主要給大家介紹了關于kubernetes(k8s)中Yaml文件詳解的相關資料,YAML是專門用來寫配置文件的語言,非常簡潔和強大,使用比json更方便,需要的朋友可以參考下
    2023-12-12
  • 阿里云ECS排查CPU數(shù)據(jù)分析

    阿里云ECS排查CPU數(shù)據(jù)分析

    這篇文章主要介紹了阿里云ECS排查CPU數(shù)據(jù)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • 關于Rancher部署并導入K8S集群的問題

    關于Rancher部署并導入K8S集群的問題

    這篇文章主要介紹了關于Rancher部署并導入K8S集群的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • kubernetes?k8s?CRD自定義資源學習筆記

    kubernetes?k8s?CRD自定義資源學習筆記

    這篇文章主要介紹了kubernetes?k8s?CRD自定義資源學習筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05

最新評論

城市| 玉田县| 肃宁县| 通城县| 成都市| 察雅县| 剑河县| 杭州市| 梨树县| 宜兰市| 攀枝花市| 房山区| 临夏县| 连平县| 淄博市| 滦平县| 泾源县| 田东县| 葫芦岛市| 桦甸市| 乡城县| 汤原县| 蓝田县| 万源市| 德化县| 德令哈市| 富宁县| 吕梁市| 大姚县| 永定县| 托克逊县| 宝兴县| 贡山| 邵东县| 隆子县| 利川市| 永宁县| 山阴县| 古田县| 耒阳市| 英超|