Instalación Docker de RustFS
RustFS es un sistema de almacenamiento de objetos distribuido de código abierto de alto rendimiento, 100% compatible con S3. En el modo de despliegue de nodo único disco único (SNSD), el backend adopta codificación de borrado cero, no proporciona redundancia de datos adicional, adecuado para pruebas locales y escenarios de pequeña escala. Este artículo se basa en el paquete binario oficial de RustFS para Linux, a través de un Dockerfile personalizado, empaqueta RustFS y su entorno de ejecución en contenedores, y configura volúmenes de datos y variables de entorno, permitiendo iniciar el servicio con un clic.
I. Preparación previa
- Requisitos del host
- Docker (≥ 20.10) instalado y capaz de extraer imágenes y ejecutar contenedores normalmente
- Ruta local
/mnt/rustfs/data
(o ruta personalizada) para montar datos de objetos
- Red y firewall
- Asegúrese de que el puerto 9000 del host esté abierto hacia el exterior (o consistente con puerto personalizado)
- Preparación del archivo de configuración
- En el host
/etc/rustfs/config.toml
, defina puerto de escucha, cuenta de administrador, ruta de datos, etc. (ver sección 4)
II. Extraer rápidamente la imagen oficial de RustFS
Use la imagen base oficial de Ubuntu para extraer rápidamente la imagen oficial de RustFS:
docker pull rustfs/rustfs
III. Escribir configuración de entorno
Cree el archivo de configuración /etc/rustfs/config.toml
en el host, contenido de ejemplo:
RUSTFS_ACCESS_KEY=rustfsadmin
RUSTFS_SECRET_KEY=rustfsadmin
RUSTFS_VOLUMES="/data/rustfs{0...3}"
RUSTFS_ADDRESS=":9000"
#RUSTFS_SERVER_DOMAINS="play.rustfs.com:7000"
RUSTFS_CONSOLE_ENABLE=true
RUSTFS_OBS_ENDPOINT=""
RUSTFS_TLS_PATH="/opt/tls"
Explicación: Para el formato de elementos de configuración y valores predeterminados, consulte la documentación oficial de instalación de Linux.
IV. Ejecutar contenedor RustFS
Método de ejecución Docker SNSD de RustFS, combinado con la imagen y configuración anteriores, ejecutar:
docker run -d \
--name rustfs_local \
-p 9000:9000 \
-v /mnt/rustfs/data:/data \
rustfs/rustfs:latest \
/data
Explicación de parámetros:
-p 9000:9000
: Mapear puerto 9000 del host al contenedor-v /mnt/rustfs/data:/data
: Montar volumen de datos--name rustfs_local
: Nombre personalizado del contenedor-d
: Ejecución en segundo plano
Ejemplo de configuración de parámetros completos
docker run -d \
--name rustfs_container \
-p 9000:9000 \
-v /mnt/rustfs/data:/data \
-e RUSTFS_ACCESS_KEY=rustfsadmin \
-e RUSTFS_SECRET_KEY=rustfsadmin \
-e RUSTFS_CONSOLE_ENABLE=true \
-e RUSTFS_SERVER_DOMAINS=example.com \
rustfs/rustfs:latest \
--address :9000 \
--console-enable \
--server-domains example.com \
--access-key rustfsadmin \
--secret-key rustfsadmin \
/data
Explicación de parámetros y métodos correspondientes
Método de variables de entorno (recomendado):
bash-e RUSTFS_ADDRESS=:9000 \ -e RUSTFS_SERVER_DOMAINS=example.com \ -e RUSTFS_ACCESS_KEY=rustfsadmin \ -e RUSTFS_SECRET_KEY=rustfsadmin \ -e RUSTFS_CONSOLE_ENABLE=true \
Método de parámetros de línea de comandos:
--address :9000 \ --server-domains example.com \ --access-key rustfsadmin \ --secret-key rustfsadmin \ --console-enable \
Parámetros requeridos:
<VOLUMES>
: Especificar al final del comando, como/data
Combinaciones de configuración comunes
Configuración básica:
bashdocker run -d \ -p 9000:9000 \ -v /mnt/data:/data \ rustfs/rustfs:latest \ /data
Habilitar consola:
bashdocker run -d \ -p 9000:9000 \ -v /mnt/data:/data \ -e RUSTFS_CONSOLE_ENABLE=true \ rustfs/rustfs:latest \ ./target/debug/rustfs \ --console-enable \ /data
Claves de autenticación personalizadas:
bashdocker run -d \ -p 9000:9000 \ -v /mnt/data:/data \ -e RUSTFS_ACCESS_KEY=rustfsadmin \ -e RUSTFS_SECRET_KEY=rustfsadmin \ rustfs/rustfs:latest \ ./target/debug/rustfs \ --access-key rustfsadmin \ --secret-key rustfsadmin \ /data
Notas
El mapeo de puertos debe corresponder:
- Puerto de servicio por defecto 9000 (
-p 9000:9000
)
- Puerto de servicio por defecto 9000 (
El volumen de datos debe ser persistente:
-v /host/path:/container/path
Las variables de entorno y parámetros de línea de comandos pueden usarse de forma mixta, pero los parámetros de línea de comandos tienen mayor prioridad
Si se usa TLS, es necesario montar adicionalmente la ruta del certificado:
bash-v /path/to/certs:/certs \ -e RUSTFS_TLS_PATH=/certs \
V. Verificación y acceso
- Ver estado del contenedor y registros:
docker logs rustfs_local
Los registros deberían mostrar inicio exitoso del servicio y monitoreo del puerto 9000.
- Probar API S3:
Use mc
u otros clientes S3:
mc alias set rustfs http://localhost:9000 rustfsadmin ChangeMe123!
mc mb rustfs/mybucket
mc ls rustfs
Si el bucket puede crearse y listarse exitosamente, entonces el despliegue es efectivo.
VI. Otras sugerencias
- Recomendaciones para entorno de producción:
- Usar arquitectura de despliegue multi-nodo
- Habilitar comunicación cifrada TLS
- Configurar estrategia de rotación de registros
- Establecer estrategia de respaldo regular
- Recomendaciones de almacenamiento:
- Usar almacenamiento SSD/NVMe local
- Evitar usar sistema de archivos de red (NFS)
- Garantizar acceso exclusivo al directorio de almacenamiento
Resumen
Este artículo combina las mejores prácticas de conteneurización de RustFS nodo único disco único y demuestra detalladamente cómo construir imágenes RustFS a través de Docker y desplegar entorno SNSD. Esta solución es fácil para inicio rápido y experimentación, posteriormente puede extenderse en plataformas como Kubernetes, Swarm con el mismo enfoque hacia clusters de producción multi-nodo multi-disco.