在一個節點上調度pod,在另一個節點上存取pv

在一個節點上調度pod,在另一個節點上存取pv

我正在 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 ConfigMaplonghorn-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: ""
...

相關內容