
我正在 RPi4 上運行一個 k3s 集群,具有異質配置(一個節點具有高容量但 HDD 速度慢,另一個節點具有 SSD 驅動器,第三個節點只有 SD 卡)。
我有持久捲和“本地路徑”類型的聲明,根據我的需要附加到節點和 Pod。
我面臨著一種情況,我需要在沒有磁碟的節點上安排一個pod 來處理儲存在帶有ssd 磁碟的節點中的資料(使用ffmpeg 將一些視訊檔案重新編碼為mp4,因為這是一個昂貴的過程,我希望在空閒節點上執行此操作,並且不會減慢運行 SSD 的節點)。
是否可以從不同節點透明地掛載 PV?我需要使用一些 nfs 嗎?是否有更先進的捲類型可以在裸機 RPi4 中使用來完成我想要的操作?
查看文件並沒有多大幫助(有大量不同的持久卷類型,但描述的用例並不多)。
謝謝
答案1
我想你可能感興趣長角計劃。
它是任何 Kubernetes 叢集的持久儲存實現,它使用 Kubernetes 節點的現有磁碟為 Kubernetes Pod 提供複製且穩定的儲存。
如上所述長角牛 github:
Longhorn 重量輕、可靠且功能強大。您可以使用一個 kubectl apply 指令或使用 Helm 圖表在現有 Kubernetes 叢集上安裝 Longhorn。一旦安裝了 Longhorn,它就會在 Kubernetes 叢集中新增持久磁碟區支援。
最重要的是,您可以使用直覺的 GUI 儀表板進行自訂長角牛滿足您的需求。
筆記:目前Longhorn僅支持AMD64。
安裝
在下面的例子中,我將向您展示如何安裝長角。
首先您必須open-iscsi
在每個叢集節點上安裝。您需要使用以下命令來安裝它:
apt-get install open-iscsi
接下來應用longhorn.yaml
程式安裝長角牛:
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml
然後創建一個longhorn
StorageClass
(您可以稍後使用 自訂它ConfigMap
)
kubectl apply -f https://raw.githubusercontent.com/rancher/longhorn/master/deploy/longhorn.yaml
這就是我們需要開始使用的全部內容長角牛:)
長角牛用戶介面
正如我之前所描述的,我們可以使用有用的 GUI 儀表板,這裡您可以找到如何存取它。此外,您可能需要使用所描述的方式
向外界公開儀表板Ingress
這裡
使用Longhorn UI
儀表板非常直觀,例如在「節點」標籤中,您可以輕鬆指定專用於提供儲存空間的節點。
長角存儲類
您可以longhorn
StorageClass
透過longhorn-storageclass
ConfigMap
在longhorn-system
命名空間中進行編輯來進行自訂,例如我將numberOfReplicas
參數從3
(預設)編輯為1
:
root@kmaster:~# kubectl describe sc longhorn
Name: longhorn
IsDefaultClass: No
Annotations: longhorn.io/last-applied-configmap=kind: StorageClass
apiVersion: storage.k8s.io/v1
...
parameters:
numberOfReplicas: "1"
staleReplicaTimeout: "2880"
fromBackup: ""
...