国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Kubernetes存儲篇】常見存儲方案及場景分析

這篇具有很好參考價值的文章主要介紹了【Kubernetes存儲篇】常見存儲方案及場景分析。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、持久化存儲理論

官方中文參考文檔:

1、為什么要做數(shù)據(jù)持久化存儲?

在k8s中部署的應用都是以pod容器的形式運行的,假如我們部署MySQL、Redis等數(shù)據(jù)庫,需要對這些數(shù)據(jù)庫產(chǎn)生的數(shù)據(jù)做備份。因為Pod是有生命周期的,如果pod不掛載數(shù)據(jù)卷,那pod被刪除或重啟后這些數(shù)據(jù)會隨之消失,如果想要長久的保留這些數(shù)據(jù)就要用到pod數(shù)據(jù)持久化存儲。

2、常見持久化存儲方案

  • emptyDir:是一種臨時性的卷,它的生命周期與 Pod 相同。emptyDir 卷是在 Pod 被調度到節(jié)點上時創(chuàng)建的,并且在 Pod 被刪除時一并刪除。emptyDir 卷通常用于在容器之間共享文件或者緩存數(shù)據(jù)。
  • HostPath:是一種本地存儲卷,可以將宿主機目錄映射到容器中,刪除Pod后宿主機卷不會跟隨刪除,但是調用到不通節(jié)點,卷內容會不一致(MySQL數(shù)據(jù)在Node1節(jié)點存儲,刪除MySQL Pod后調度到Node2上了,導致數(shù)據(jù)不一致)。
  • NFS:是一種共享卷,需要依賴于NFS服務端,所有Pod共享NFS卷內容,不需要考慮Pod調度在不同節(jié)點導致數(shù)據(jù)不一致問題,但是NFS基于網(wǎng)絡傳輸,會占用帶寬。
  • PVC:用來實現(xiàn)持久化存儲,可以將存儲資源獨立出來,方便管理和共享。

二、案例:持久化存儲方案

1、emptydir臨時存儲卷

臨時卷,當Pod被刪除時,卷也會刪除,用于存儲一些不重要的數(shù)據(jù)。

創(chuàng)建Pod資源,使用emptydir卷方式掛載 ,YAML如下:

cat emptydir-pod.yaml 

---
apiVersion: v1
kind: Pod
metadata:
  name: empty-pod
  labels: 
    type: empty-pod
spec:
  containers:
  - name: empty-pod
    image: nginx
    imagePullPolicy: IfNotPresent
    volumeMounts: 
    - name: volume-empty  # 掛載路徑名稱,必須與下面卷名稱一致
      mountPath: /usr/share/nginx/html  # 卷掛載目錄
  volumes:
  - emptyDir: {}         # emptyDir類型,{}表示一個空的配置
    name: volume-empty   # 卷名稱

執(zhí)行YAML文件:

kubectl apply -f emptydir-pod.yaml

如何查看本地掛載卷路徑位置呢?

第一步:確認Pod當前所在節(jié)點,可以使用以下命令確認:

kubectl get pods empty-pod -o wide

第二步:確認Pod的uid值,可以使用以下名稱確認:

kubectl get pods empty-pod -o yaml|grep uid
uid: 9f76e568-05a9-41c3-9fb2-c43505214b99

第三步:在Pod所在節(jié)點中的/var/lib/kubelet/pods/uid 目錄下:

cd /var/lib/kubelet/pods/9f76e568-05a9-41c3-9fb2-c43505214b99
cd volumes/kubernetes.io~empty-dir/volume-empty  # 此目錄對應Pod中/usr/share/nginx/html 目錄

確認本地卷對應目錄后,我們進入路徑,創(chuàng)建index.html文件:

cd /var/lib/kubelet/pods/9f76e568-05a9-41c3-9fb2-c43505214b99/volumes/kubernetes.io~empty-dir/volume-empty

echo "qinzt666" > index.html 

訪問Pod網(wǎng)站內容:

kubectl get pods empty-pod -o wide
curl 10.244.235.233

【Kubernetes存儲篇】常見存儲方案及場景分析

我們刪除Pod后宿主機上此目錄也會跟隨刪除

kubectl delete pods empty-pod

【Kubernetes存儲篇】常見存儲方案及場景分析

2、hostPath本地存儲卷

本地存儲卷,指定宿主機目錄,與容器目錄做映射,刪除Pod,宿主機目錄不會跟隨刪除,hostPath可以支持很多掛載類型,如掛載目錄,掛載文件等,如下圖,此圖來自官方:

【Kubernetes存儲篇】常見存儲方案及場景分析

創(chuàng)建Pod資源,使用hostPath卷方式掛載 ,YAML如下:

cat hostpath-pod.yaml 
---
apiVersion: v1
kind: Pod
metadata:
  name: hostpath-pod
  labels: 
    type: hostpath-pod
spec:
  containers:
  - name: hostpath-pod
    image: nginx
    imagePullPolicy: IfNotPresent
    volumeMounts: 
    - name: volume-hostpath  # 掛載路徑名稱,必須與下面卷名稱一致
      mountPath: /usr/share/nginx/html  # 容器掛載目錄
  volumes:
  - hostPath:
      path: /data1              # 宿主機掛載目錄
      type: DirectoryOrCreate   # 卷類型,DirectoryOrCreate表示目錄,宿主機不存在則創(chuàng)建空目錄
    name: volume-hostpath       # 卷名稱

執(zhí)行YAML文件:

kubectl apply -f hostpath-pod.yaml

在Pod調度節(jié)點的宿主機掛載卷位置創(chuàng)建 index.html 文件

kubectl get pods hostpath-pod -o wide

【Kubernetes存儲篇】常見存儲方案及場景分析

echo "hello world qinzt 666 ...." >/data1/index.html

訪問Pod網(wǎng)站內容,Pod 的IP地址如上圖也可以查看到:

curl 10.244.235.198

【Kubernetes存儲篇】常見存儲方案及場景分析

刪除此Pod,節(jié)點上的數(shù)據(jù)依舊存在。

kubectl delete pod hostpath-pod
ls /data1/

index.html

3、NFS網(wǎng)絡共享存儲卷

NFS共享存儲卷,需要先搭建NFS服務端,Pod共享NFS服務端數(shù)據(jù),解決了Pod調度在不通Node節(jié)點,導致數(shù)據(jù)不一致問題,但是NFS需要依賴網(wǎng)絡帶寬。

搭建NFS服務端:所有Node節(jié)點上都需要安裝 nfs-utils

yum install nfs-utils -y
mkdir /data/volumes -p

vim /etc/exports
/data/volumes *(rw,no_root_squash)

加載配置生效 && 啟動NFS服務

exportfs -arv
systemctl enable nfs --now

在其他Node節(jié)點上面測試 NFS 是否可以正常掛載:

yum install nfs-utils -y
mkdir /test
mount 16.32.15.200:/data/volumes /test

df -hT /test/

【Kubernetes存儲篇】常見存儲方案及場景分析

如上圖測試無問題,卸載掛載:

umount /test

OK,至此NFS服務端已經(jīng)搭建完成,測試沒有問題了。

編寫 YAML 使用 NFS 類型存儲卷:

cat nfs-deployment.yaml 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-test
  namespace: default
  labels:
    type: nfs
spec:
  replicas: 3
  selector:
    matchLabels:
      type: nfs
  template:
    metadata:
      labels:
        type: nfs
    spec:
      volumes:
      - name: nfs-test-volume     # 卷名稱
        nfs: 
          server: 16.32.15.200    # NFS服務端IP地址
          path: /data/volumes     # NFS服務端共享目錄
      containers:
      - name: nfs-test
        image: nginx
        imagePullPolicy: IfNotPresent
        volumeMounts:
        - name: nfs-test-volume             # 掛載卷名稱
          mountPath: /usr/share/nginx/html  # 容器內掛載目錄

執(zhí)行YAML 資源清單文件:

kubectl apply -f nfs-deployment.yaml

在 宿主機NFS共享卷創(chuàng)建 index.html 文件

echo "qinzt coolest 666." > /data/volumes/index.html

訪問 Pod網(wǎng)站,由于沒有創(chuàng)建Service資源,我們使用Pod IP地址進行訪問。

kubectl get pods -o wide

【Kubernetes存儲篇】常見存儲方案及場景分析

上面curl 兩個節(jié)點上的Pod都可以訪問,說明掛載nfs存儲卷成功了,nfs支持多個客戶端掛載,可以創(chuàng)建多個pod,掛載同一個nfs服務器共享出來的目錄;但是nfs如果宕機了,數(shù)據(jù)也就丟失了,所以需要使用分布式存儲,常見的分布式存儲有glusterfs和cephfs。文章來源地址http://www.zghlxwxcb.cn/news/detail-479169.html

到了這里,關于【Kubernetes存儲篇】常見存儲方案及場景分析的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 飛天使-k8s基礎組件分析-持久化存儲

    飛天使-k8s基礎組件分析-持久化存儲

    emptyDir hostpath pv和pvc介紹 nfs作為靜態(tài)pv案例 nfs作為動態(tài)pv案例 使用本地文件夾作為pv 改變默認存儲類及回收策略 參考文檔

    2024年02月11日
    瀏覽(51)
  • 騰訊數(shù)據(jù)持久化方案MMKV原理分析

    騰訊數(shù)據(jù)持久化方案MMKV原理分析

    提到數(shù)據(jù)持久化存儲的方案,Android提供的手段有很多,在項目中常用的就是SharedPreference(簡稱SP),但是SP使用雖然簡單,但是存在缺陷: 寫入速度慢,尤其在主線程頻繁執(zhí)行寫入操作易導致卡頓或者ANR; 不支持跨進程 因此針對這種缺陷,我們往往會換其他的技術方案,例如

    2024年02月07日
    瀏覽(19)
  • ThingsBoard使用持久化RPC案例場景

    昨天,有個兄弟找到我,他說他遇到問題了,場景如下:他有一個掃描槍A設備,A設備上報數(shù)據(jù)到ThingsBoard,然后需要將數(shù)據(jù)發(fā)送給B設備,其實這樣想實現(xiàn)很簡單的就是一個給B設備下發(fā)RPC即可,但是啊,這個兄弟說B設備可能會離線,如何保證B設備上線后照樣能收到A設備的消

    2024年02月12日
    瀏覽(39)
  • 【pinia持久化存儲】使用pinia和pinia-plugin-persistedstate依賴進行數(shù)據(jù)的持久化存儲

    【pinia持久化存儲】使用pinia和pinia-plugin-persistedstate依賴進行數(shù)據(jù)的持久化存儲

    使用pinia和pinia-plugin-persistedstate依賴進行數(shù)據(jù)的持久化存儲。 存儲方式 : localStorage sessionStorage pinia-plugin-persistedstate 中文官網(wǎng) pinia 中文官網(wǎng) 安裝和使用 pinia ,請參考使用pinia文章。 安裝 pinia-plugin-persistedstate : 使用前先將 pinia-plugin-persistedstate添加到pinia實例上。 在添加的時

    2023年04月17日
    瀏覽(25)
  • React+Redux 數(shù)據(jù)存儲持久化

    React+Redux 數(shù)據(jù)存儲持久化

    yarn add @reduxjs/toolkit redux react-redux redux-persist 默認已經(jīng)模塊化了reducers,如下圖所示 數(shù)據(jù)持續(xù)化存儲github redux-persist redux工具 redux RTK redux官網(wǎng) redux

    2024年02月16日
    瀏覽(33)
  • 淺談Kafka持久化與日志存儲

    Apache Kafka是一個分布式流處理平臺,用于構建實時數(shù)據(jù)流管道和流式應用程序。Kafka具有高吞吐量、低延遲、可擴展性和容錯性等特點。本文檔將介紹Kafka的持久化與日志存儲機制,包括Kafka的存儲架構、數(shù)據(jù)壓縮和數(shù)據(jù)清理等;此外還將分析如何在 Kafka 中進行日志監(jiān)控和維護

    2024年02月03日
    瀏覽(18)
  • k8s 持久化存儲

    k8s 持久化存儲

    我們繼續(xù)來查看 k8s 的卷,上一次我們分享了將磁盤掛載到容器中,empyDir 和 gitRepo 都是會隨著 pod 的啟動而創(chuàng)建,隨著 pod 的刪除而銷毀 那么我們或許會有這樣的需求,期望在 pod 上面讀取節(jié)點的文件或者使用節(jié)點的文件系統(tǒng)來訪問節(jié)點的設備 這個時候,我們就可以讓 hostP

    2024年02月16日
    瀏覽(25)
  • 【k8s存儲--使用OpenEBS做持久化存儲】

    【k8s存儲--使用OpenEBS做持久化存儲】

    使用OpenEBS,你可以將有持久化數(shù)據(jù)的容器,像對待其他普通容器一樣來對待。OpenEBS本身也是通過容器來部署的,支持Kubernetes、Swarm、Mesos、Rancher編排調度,存儲服務可以分派給每個pod、應用程序、集群或者容器級別,包括: 跨節(jié)點的數(shù)據(jù)持久化 跨可用區(qū)和云廠商的數(shù)據(jù)同步

    2024年04月23日
    瀏覽(26)
  • K8S之持久化存儲

    K8S之持久化存儲

    在K8S中部署的應用都是以pod容器的形式運行的,假如部署數(shù)據(jù)庫服務 例如:MySQL、Redis等,需要對產(chǎn)生的數(shù)據(jù)做備份。如果pod不掛載數(shù)據(jù)卷,那pod被刪除或重啟后這些數(shù)據(jù)會隨之消失,想要長久的保留這些數(shù)據(jù)就要用到pod數(shù)據(jù)持久化存儲。 查看K8S支持哪些存儲 常用的如下:

    2024年04月09日
    瀏覽(25)
  • docker (五)-docker存儲-數(shù)據(jù)持久化

    docker (五)-docker存儲-數(shù)據(jù)持久化

    將數(shù)據(jù)存儲在容器中,一旦容器被刪除,數(shù)據(jù)也會被刪除。同時也會使容器變得越來越大,不方便恢復和遷移。 將數(shù)據(jù)存儲到容器之外,這樣刪除容器也不會丟失數(shù)據(jù)。一旦容器故障,我們可以重新創(chuàng)建一個容器,將數(shù)據(jù)掛載到容器里,就可以快速的恢復。 volume 卷 卷存儲在

    2024年02月20日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包