Local volume vs HostPath

更新 發佈閱讀 4 分鐘

以下將說明關於Local volume 與hostPath二種類型的差異與一些注意事項。

raw-image

1. HostPath

raw-image

hostPath是將節點內的檔案、目錄映射進Pod內,支援類型:File, Directory, Socket, BlockDevice。

apiVersion: v1
kind: Pod
metadata:
name: test-pod2
spec:
containers:
- image: busybox
name: test-hostpath
command: [ "sleep", "3600" ]
volumeMounts:
- mountPath: /test-data
name: test-volume
volumes:
- name: test-volume
hostPath:
# directory location on host
path: /data
# this field is optional
type: Directory

使用上要注意:

  1. 要使用hostpath volume建議搭配NodeSelector來做配置,但數量一多就很煩人。
  2. 如果套用DirectoryOrCreateFileOrCreate,要確定kubelet有在節點上Create file/directory的權限。
  3. 如果節點上的File/Directory是由root建立的,在掛到容器後,還要確認容器有沒有權限進行讀寫
  4. Kubernetes scheduler不會考慮hostPath volume的大小,也無法設定大小,所以必須用其他方式進行檢查。

2. Local volume

Local volume的機制是掛載本地的儲存資源,像是Disk, partition, folder。讓這些資源可以被kubernetes以static pv的方式取得。

主要就是要用來解決HostPath的問題。會由PV controllerScheduler做local pv做邏輯上的額外處理,才能實現在Pod re-schedule時,可以再排程到local volume所在的節點。

Local volume可以確保Pod與PV一定可以被scheduled到相同的worker node上。

3. 使用Local volume的時機

  • 需要從遠端的storage預先載入到本地的目錄,用來加速Pod讀取資料的速度(Cache),這種情況為ReadOnly,所以不怕資料損壞,現在有些AI在訓練時也會採用這種方式。
  • 本地有建立SDS解決方案,因為本身就有replicas,所以也可以採用local pv。
  • 不適合在需要做scaling的環境使用

4. 使用Local volume注意事項

  • 在寫PV時,可以.spec.nodeAffinityfield部份來說明local volume與node的綁定關係
  • 如果使用local-storage storageclass時,可以使用volumeBindingMode: WaitForFirstConsumer來實現延遲定,讓PV controller不會立刻為PVC做Bound,等到需要使用這個local pv的Pod完成排程後,再去做Bound。

為了改善這些問題,官方再提出一個local volume provisionner的解決方案來處理這些問題

(1) 監控配置好的掛載點,建立對應storageClassName, path, nodeAffinity, capacity的PV

(2) 刪除PVC後,自動清理local mount的所有內容,並刪除對應的PV

(3) 只有一開始的local volume的掛載需要人工,其他都由provisionner處理。


Reference:

留言
avatar-img
留言分享你的想法!
avatar-img
超健忘閒人的沙龍
15會員
40內容數
記錄IT社畜的自我學習筆記,如同專題名稱,主要是怕自已忘記自已做過什麼、學到什麼。索性就分享我自已在學習Kubernetes這條路上的各種測試、學習心得。
2024/05/08
本文將介紹如何在Gitlab上部署和註冊runner,以進行CI/CD測試。透過Docker-compose方式進行部署,同時注意安裝時的一些注意事項。建議學習者至少掌握一種以上的Pipeline工具,以滿足實務上的需求。
Thumbnail
2024/05/08
本文將介紹如何在Gitlab上部署和註冊runner,以進行CI/CD測試。透過Docker-compose方式進行部署,同時注意安裝時的一些注意事項。建議學習者至少掌握一種以上的Pipeline工具,以滿足實務上的需求。
Thumbnail
2024/04/19
上一篇說明了如何在Kubernetes上建立基本的MySQL standalone,並加入phpmyadmin(PMA)來進行圖形化的管理,本篇就再進階一步,實作MySQL replication架構(master-salve),並進行驗證是否成功。
Thumbnail
2024/04/19
上一篇說明了如何在Kubernetes上建立基本的MySQL standalone,並加入phpmyadmin(PMA)來進行圖形化的管理,本篇就再進階一步,實作MySQL replication架構(master-salve),並進行驗證是否成功。
Thumbnail
2024/04/09
本文記錄如何在Kubernetes環境下,部署Standalone架構的MySQL Database,並透過phpmyadmin進行管理。這篇文章將分成MySQL部署在K8S內的優勢、部署MySQL DB standalone、部署PhpMyAdmin (PMA)、結論四個部分進行說明與實作的流程。
Thumbnail
2024/04/09
本文記錄如何在Kubernetes環境下,部署Standalone架構的MySQL Database,並透過phpmyadmin進行管理。這篇文章將分成MySQL部署在K8S內的優勢、部署MySQL DB standalone、部署PhpMyAdmin (PMA)、結論四個部分進行說明與實作的流程。
Thumbnail
看更多
你可能也想看
Thumbnail
從官網可以知道,我們在建立一組高可用的Kubernetes Cluster時,針對ETCD有二種做法,一種是與Master節點共用,另一種則是將ETCD再獨立出來三個節點成為一組Cluster來進行運作。 本文將說明如何建置出外部的ETCD Cluster,並以Static Pod的方式運行與管理
Thumbnail
從官網可以知道,我們在建立一組高可用的Kubernetes Cluster時,針對ETCD有二種做法,一種是與Master節點共用,另一種則是將ETCD再獨立出來三個節點成為一組Cluster來進行運作。 本文將說明如何建置出外部的ETCD Cluster,並以Static Pod的方式運行與管理
Thumbnail
今天簡單演示如何在Kubernetes cluster利用local-path provider建構出storage class來提供應用程式進行資料的存放。
Thumbnail
今天簡單演示如何在Kubernetes cluster利用local-path provider建構出storage class來提供應用程式進行資料的存放。
Thumbnail
本篇將補完上一篇所提到關於StatefulSet的實作部份。
Thumbnail
本篇將補完上一篇所提到關於StatefulSet的實作部份。
Thumbnail
本文將說明關於Local volume 與hostPath二種類型的差異與一些注意事項。
Thumbnail
本文將說明關於Local volume 與hostPath二種類型的差異與一些注意事項。
Thumbnail
在建置完Kubernetes cluster之後,通常我會做的前幾件事之一就是建立一個StorageClass給應用服務使用,而NFS我認為是相對容易實現的做法。
Thumbnail
在建置完Kubernetes cluster之後,通常我會做的前幾件事之一就是建立一個StorageClass給應用服務使用,而NFS我認為是相對容易實現的做法。
Thumbnail
本文針對Kubernetes內最基本的資源(cpu, ram, disk)的計算單位與一些實務操作,分享給自已與大家做參考。
Thumbnail
本文針對Kubernetes內最基本的資源(cpu, ram, disk)的計算單位與一些實務操作,分享給自已與大家做參考。
Thumbnail
宣告式管理是一種管理方法,其中您描述系統或資源的期望狀態,而不必關心實際如何達到該狀態。kubectl apply 命令在 Kubernetes 中實現了這種宣告式管理方式,以下是執行指令時的運作流程...
Thumbnail
宣告式管理是一種管理方法,其中您描述系統或資源的期望狀態,而不必關心實際如何達到該狀態。kubectl apply 命令在 Kubernetes 中實現了這種宣告式管理方式,以下是執行指令時的運作流程...
Thumbnail
Hosts File 是一種可以取代 DNS 查詢的步驟 直接指定 domain 所指向的 IP 位址 甚至是不存在的 domain 也可以使用 hosts file 來給定 IP 位址
Thumbnail
Hosts File 是一種可以取代 DNS 查詢的步驟 直接指定 domain 所指向的 IP 位址 甚至是不存在的 domain 也可以使用 hosts file 來給定 IP 位址
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News