Post

RustFS

RustFS

RustFS

Self-hosted, S3-compatible object storage, deployed to the default namespace of the k3s cluster.

Deployment

ItemValue
Namespacedefault
Imagerustfs/rustfs:latest
S3 API port9000
Console port9002
Service typeLoadBalancer (MetalLB) — 192.168.1.36
Ingressrustfs.prod-k3s.iot-proxmox.net and www.rustfs.prod-k3s.iot-proxmox.net → console (port 9002)
StoragePVC rustfs-data (20Gi) for object data, PVC rustfs-logs (1Gi) for logs, both local-path
CredentialsRUSTFS_ACCESS_KEY / RUSTFS_SECRET_KEY from Secret rustfs-credentials

reloader.stakater.com/auto: "true" is set, so the pod restarts automatically if its config changes.

Configuration

Set via environment variables on the container:

VariableValuePurpose
RUSTFS_VOLUMES/data/rustfs0Single-volume backend, backed by the rustfs-data PVC
RUSTFS_ADDRESS0.0.0.0:9000S3 API bind address
RUSTFS_CONSOLE_ADDRESS0.0.0.0:9002Web console bind address
RUSTFS_CONSOLE_ENABLEtrueEnables the web console
RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS*CORS wide open for the console
RUSTFS_OBS_LOGGER_LEVELinfoLog verbosity
RUSTFS_UNSAFE_BYPASS_DISK_CHECKfalseDisk sanity checks left enabled

Access is via any S3-compatible client (aws s3, mc, SDKs, etc.) pointed at the RustFS service endpoint, authenticated with the access/secret key pair stored in the rustfs-credentials Secret. The web console at https://rustfs.prod-k3s.iot-proxmox.net provides bucket browsing and management without a separate client.

This post is licensed under CC BY 4.0 by the author.