mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-28 17:18:58 +00:00
2b268fdd7f
* update tls configuration in helm chart * typo fix
105 lines
4.2 KiB
Markdown
105 lines
4.2 KiB
Markdown
# RustFS Helm Mode
|
|
|
|
RustFS helm chart supports **standalone and distributed mode**. For standalone mode, there is only one pod and one pvc; for distributed mode, there are two styles, 4 pods and 16 pvcs(each pod has 4 pvcs), 16 pods and 16 pvcs(each pod has 1 pvc). You should decide which mode and style suits for your situation. You can specify the parameters `mode` and `replicaCount` to install different mode and style.
|
|
|
|
- **For standalone mode**: Only one pod and one pvc acts as single node single disk; Specify parameters `mode.standalone.enabled="true",mode.distributed.enabled="false"` to install.
|
|
- **For distributed mode**(**default**): Multiple pods and multiple pvcs, acts as multiple nodes multiple disks, there are two styles:
|
|
- 4 pods and each pods has 4 pvcs(**default**)
|
|
- 16 pods and each pods has 1 pvc: Specify parameters `replicaCount` with `--set replicaCount="16"` to install.
|
|
|
|
**NOTE**: Please make sure which mode suits for you situation and specify the right parameter to install rustfs on kubernetes.
|
|
|
|
# Parameters Overview
|
|
|
|
| parameter | description | default value |
|
|
| -- | -- | -- |
|
|
| replicaCount | Number of cluster nodes. | Default is `4`. |
|
|
| mode.standalone.enabled | RustFS standalone mode support, namely one pod one pvc. | Default is `false` |
|
|
| mode.distributed.enabled | RustFS distributed mode support, namely multiple pod multiple pvc. | Default is `true`. |
|
|
| image.repository | docker image repository. | rustfs/rustfs. |
|
|
| image.tag | the tag for rustfs docker image | "latest" |
|
|
| secret.rustfs.access_key | RustFS Access Key ID | `rustfsadmin` |
|
|
| secret.rustfs.secret_key | RustFS Secret Key ID | `rustfsadmin` |
|
|
| storageclass.name | The name for StorageClass. | `local-path` |
|
|
| ingress.className | Specify the ingress class, traefik or nginx. | `nginx` |
|
|
|
|
|
|
**NOTE**: [`local-path`](https://github.com/rancher/local-path-provisioner) is used by k3s. If you want to use `local-path`, running the command,
|
|
|
|
```
|
|
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.32/deploy/local-path-storage.yaml
|
|
```
|
|
|
|
# Installation
|
|
|
|
## Requirement
|
|
|
|
* Helm V3
|
|
* RustFS >= 1.0.0-alpha.69
|
|
|
|
Due to the traefik and ingress has different session sticky/affinity annotations, and rustfs support both those two controller, you should specify parameter `ingress.className` to select the right one which suits for you.
|
|
|
|
## Installation with traekfik controller
|
|
|
|
If your ingress class is `traefik`, running the command:
|
|
|
|
```
|
|
helm install rustfs -n rustfs --create-namespace ./ --set ingress.className="traefik"
|
|
```
|
|
|
|
## Installation with nginx controller
|
|
|
|
If your ingress class is `nginx`, running the command:
|
|
|
|
```
|
|
helm install rustfs -n rustfs --create-namespace ./ --set ingress.className="nginx"
|
|
```
|
|
|
|
# Installation check and rustfs login
|
|
|
|
Check the pod status
|
|
|
|
```
|
|
kubectl -n rustfs get pods -w
|
|
NAME READY STATUS RESTARTS AGE
|
|
rustfs-0 1/1 Running 0 2m27s
|
|
rustfs-1 1/1 Running 0 2m27s
|
|
rustfs-2 1/1 Running 0 2m27s
|
|
rustfs-3 1/1 Running 0 2m27s
|
|
```
|
|
|
|
Check the ingress status
|
|
|
|
```
|
|
kubectl -n rustfs get ing
|
|
NAME CLASS HOSTS ADDRESS PORTS AGE
|
|
rustfs nginx your.rustfs.com 10.43.237.152 80, 443 29m
|
|
```
|
|
|
|
Access the rustfs cluster via `https://your.rustfs.com` with the default username and password `rustfsadmin`.
|
|
|
|
> Replace the `your.rustfs.com` with your own domain as well as the certificates.
|
|
|
|
# TLS configuration
|
|
|
|
By default, tls is not enabled.If you want to enable tls(recommendated),you can follow below steps:
|
|
|
|
* Step 1: Certification generation
|
|
|
|
You can request cert and key from CA or use the self-signed cert(**not recommendated on prod**),and put those two files(eg, `tls.crt` and `tls.key`) under some directory on server, for example `tls` directory.
|
|
|
|
* Step 2: Certification specifying
|
|
|
|
You should use `--set-file` parameter when running `helm install` command, for example, running the below command can enable ingress tls and generate tls secret:
|
|
|
|
```
|
|
helm install rustfs rustfs/rustfs -n rustfs --set tls.enabled=true,--set-file tls.crt=./tls.crt,--set-file tls.key=./tls.key
|
|
```
|
|
|
|
# Uninstall
|
|
|
|
Uninstalling the rustfs installation with command,
|
|
|
|
```
|
|
helm uninstall rustfs -n rustfs
|
|
``` |