72 lines
3.6 KiB
Markdown
72 lines
3.6 KiB
Markdown
# FastDF-Nginx - Multiple tracker, Multiple storage
|
|
|
|
[FastDFS](https://github.com/happyfish100/fastdfs) is an open source high performance distributed file system (DFS). It's major functions include: file storing, file syncing and file accessing, and design for high capacity and load balance.
|
|
|
|
## Introduction
|
|
|
|
This chart bootstraps tracker and storage stateful-application on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. Largely inspired by this [tutorial](https://kubernetes.io/docs/tutorials/stateful-application/run-replicated-stateful-application/), further work was made to 'production-ize' the example.
|
|
|
|
## Prerequisites
|
|
|
|
- Kubernetes 1.6+
|
|
- PV provisioner support in the underlying infrastructure
|
|
|
|
## Installing the Chart
|
|
|
|
To install the chart with the release name `my-release`:
|
|
|
|
```bash
|
|
$ helm install my-release local/fastdfs-nginx
|
|
```
|
|
|
|
The command deploys FastDFS-Nginx cluster on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
|
|
|
|
### Uninstall
|
|
|
|
To uninstall/delete the `my-release` deployment:
|
|
|
|
```bash
|
|
$ helm delete my-release
|
|
```
|
|
|
|
## Configuration
|
|
|
|
The following table lists the configurable parameters of the FastDFS-Nginx chart and their default values.
|
|
|
|
| Parameter | Description | Default |
|
|
| ----------------------- | ----------------------------------- | -------------------------------------- |
|
|
| `fastdfs.storage` | storage replicas number and pvc size| See `values.yaml` |
|
|
| `fastdfs.tracker` | tracker replicas number, pvc size and nginx config file.| See `values.yaml` |
|
|
| `service.type` | Service type. | `ClusterIP` |
|
|
| `image` | `fastdfs-nginx` image, tag. | `ygqygq2/fastdfs-nginx` `V6.07` |
|
|
| `trackerPorts` | tracker and nginx ports. | See `values.yaml` |
|
|
| `storagePorts` | storage and nginx ports. | See `values.yaml` |
|
|
| `ingress` | Ingress for the fastdfs tracker nginx.| `false` |
|
|
| `persistentVolume.enabled` | Create a volume to store data | true |
|
|
| `persistence.storageClass` | Type of persistent volume claim | `nil` |
|
|
| `persistence.accessModes` | Persistent volume access modes | `[ReadWriteOnce]` |
|
|
| `persistence.annotations` | Persistent volume annotations | `{}` |
|
|
| `resources` | CPU/Memory resource requests/limits | Memory: `128Mi`, CPU: `100m` |
|
|
|
|
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
|
|
|
## Persistence
|
|
|
|
The [FastDFS image](https://github.com/ygqygq2/fastdfs-nginx) stores the data and configurations at the `/var/fdfs` path of the container.
|
|
|
|
By default persistence is enabled, and a PersistentVolumeClaim is created and mounted in that directory. As a result, a persistent volume will need to be defined:
|
|
|
|
```
|
|
# https://kubernetes.io/docs/user-guide/persistent-volumes/#azure-disk
|
|
kind: StorageClass
|
|
apiVersion: storage.k8s.io/v1
|
|
metadata:
|
|
name: fast
|
|
provisioner: kubernetes.io/azure-disk
|
|
parameters:
|
|
skuName: Premium_LRS
|
|
location: westus
|
|
```
|
|
|
|
In order to disable this functionality you can change the values.yaml to disable persistence and use an emptyDir instead.
|