
私は、異種構成 (1 つのノードには大容量だが低速の HDD があり、別のノードには SSD ドライブがあり、3 つ目のノードには SD カードのみがある) で RPi4 上で k3s クラスターを実行しています。
ニーズに応じてノードとポッドに接続された「local-path」という種類の永続ボリュームとクレームがあります。
私は、SSD ディスクを搭載したノードに保存されているデータを処理するために、ディスクのないノードでポッドをスケジュールする必要がある状況に直面しています (ffmpeg を使用して一部のビデオ ファイルを mp4 に再エンコードしますが、これはコストのかかるプロセスであるため、アイドル ノードでこれを実行し、SSD を実行しているノードの速度を低下させないようにしたいと考えています)。
別のノードから PV を透過的にマウントすることは可能ですか? NFS を使用する必要がありますか? ベアメタル RPi4 で使用して、必要な操作を実行できる、より進化したタイプのボリュームはありますか?
ドキュメントを見てもあまり役に立ちませんでした (永続ボリュームの種類は数多くありますが、ユースケースはあまり説明されていません)。
ありがとう
答え1
興味があるかもしれないプロジェクト・ロングホーンこれは、
あらゆる Kubernetes クラスターの永続ストレージ実装であり、Kubernetes ノードの既存のディスクを使用して、Kubernetes ポッドに複製された安定したストレージを提供します。
記載の通りロングホーン github:
Longhorn は軽量で信頼性が高く、強力です。 kubectl apply コマンドを 1 回実行するか、Helm チャートを使用して、既存の Kubernetes クラスターに Longhorn をインストールできます。 Longhorn がインストールされると、Kubernetes クラスターに永続ボリュームのサポートが追加されます。
そして何よりも、直感的なGUIダッシュボードを使用してカスタマイズできますロングホーンあなたのニーズに合わせて。
注記:現時点でLonghornがサポートしているのは64ビット。
インストール
以下の例では、インストール方法を説明します。ロングホーン。
まず、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
使い始めるのに必要なのはこれだけですロングホーン:)
ロングホーンUI
前にも述べたように、便利なGUIダッシュボードを使うことができます。ここアクセス方法も確認できます。また
、ダッシュボードを外部に公開する必要がある場合は、Ingress
ここ
ダッシュボードの使用はLonghorn UI
非常に直感的です。たとえば、「ノード」タブでは、ストレージを提供する専用のノードを簡単に指定できます。
longhorn ストレージクラス
名前空間でlonghorn
StorageClass
編集することでカスタマイズできます。たとえば、パラメータを (default) から次のように編集しました: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: ""
...