Installation
Installieren Sie RustFS im Standalone- oder verteilten Modus mit dem offiziellen Helm-Chart auf Kubernetes.
Diese Anleitung bezieht das offizielle RustFS-Chart aus dem Quellcode oder dem Helm-Repository, installiert es und prüft den Zugriff auf die S3-API und die Console (Weboberfläche).
Anforderungen
| Komponente | Anforderung |
|---|---|
| Helm | Version 3 |
| Kubernetes | Ein mit kubectl erreichbarer Cluster |
| StorageClass | Dynamische PVC-Bereitstellung für RustFS-Daten |
| RustFS | 1.0.0-alpha.69 oder neuer |
Ein Ingress-Controller ist optional. Wenn Sie Ingress aktivieren, setzen Sie ingress.className auf den Controller in Ihrem Cluster, zum Beispiel nginx oder traefik.
Prüfen Sie den aktiven Cluster und die verfügbaren StorageClasses:
kubectl config current-context
kubectl get storageclass
helm version --shortChart beziehen
Wählen Sie, wie Helm auf das Chart zugreift. Beide Optionen setzen RUSTFS_CHART, das die Installationsbefehle weiter unten verwenden.
Klonen Sie das RustFS-Quell-Repository, um das Chart unter helm/rustfs zu verwenden:
git clone https://github.com/rustfs/rustfs.git
cd rustfs
export RUSTFS_CHART=./helm/rustfsStandalone-Modus installieren
Legen Sie eine Values-Datei für eine Entwicklungsumgebung mit einem Pod an:
mode:
standalone:
enabled: true
distributed:
enabled: false
secret:
rustfs:
access_key: "<your-access-key>"
secret_key: "<your-secret-key>"
storageclass:
name: standard
dataStorageSize: 10Gi
logStorageSize: 1Gi
ingress:
enabled: falseErsetzen Sie standard durch eine StorageClass in Ihrem Cluster und installieren Sie anschließend:
helm upgrade --install rustfs "$RUSTFS_CHART" \
--namespace rustfs \
--create-namespace \
-f standalone-values.yamlVerteilten Modus installieren
Setzen Sie für einen verteilten Cluster die Anzahl der Pods und Laufwerke ausdrücklich. Die Gesamtzahl der Datenlaufwerke entspricht replicaCount * drivesPerNode.
mode:
standalone:
enabled: false
distributed:
enabled: true
replicaCount: 4
drivesPerNode: 2
secret:
rustfs:
access_key: "<your-access-key>"
secret_key: "<your-secret-key>"
storageclass:
name: standard
dataStorageSize: 100Gi
logStorageSize: 1Gi
ingress:
enabled: falseDas Beispiel erzeugt vier Pods und acht Daten-PVCs. Stellen Sie sicher, dass der Cluster alle Pods einplanen und alle PVCs bereitstellen kann, und installieren Sie anschließend:
helm upgrade --install rustfs "$RUSTFS_CHART" \
--namespace rustfs \
--create-namespace \
-f distributed-values.yamlTopologie vor der Installation festlegen
Kubernetes erlaubt keine Aktualisierung der volumeClaimTemplates eines StatefulSet. Eine spätere Änderung von drivesPerNode erfordert, dass das StatefulSet neu angelegt oder die Installation neu ausgeführt wird.
RustFS prüfen und erreichen
kubectl -n rustfs get pods,pvc,services
kubectl -n rustfs rollout status statefulset/rustfsDer Standalone-Modus erzeugt ein Deployment anstelle eines StatefulSet. Prüfen Sie es mit:
kubectl -n rustfs rollout status deployment/rustfsLeiten Sie die S3-API und die Console auf Ihre Arbeitsstation weiter:
kubectl -n rustfs port-forward svc/rustfs 9000:9000 9001:9001Verwenden Sie http://localhost:9000 als S3-Endpunkt und öffnen Sie http://localhost:9001 für die Console.
Wichtige Values
| Wert | Zweck | Chart-Standard |
|---|---|---|
mode.standalone.enabled | Standalone-Modus mit einem Pod aktivieren | false |
mode.distributed.enabled | Verteilten Modus aktivieren | true |
replicaCount | Anzahl der Pods im verteilten Modus | 4 |
drivesPerNode | Daten-PVCs pro Pod | Aus replicaCount abgeleitet |
storageclass.name | StorageClass für PVCs | local-path |
storageclass.dataStorageSize | Größe jedes Daten-PVC | 256Mi |
storageclass.logStorageSize | Größe jedes Protokoll-PVC | 256Mi |
service.endpoint.port | Port der S3-API | 9000 |
service.console.port | Console-Port | 9001 |
Wir empfehlen, Speichergrößen ausdrücklich zu setzen. Die Chart-Standards sind nur für eine grundlegende Evaluierung gedacht.