mirror of
https://github.com/mainflux/mainflux.git
synced 2025-04-26 13:48:53 +08:00
Deploy Mainflux on Kubernetes - WIP
Scripts to deploy Mainflux on Kubernetes (https://kubernetes.io). Work in progress. Not ready for deployment.
Steps
1. Setup PosgreSQL
- Create Persistent Volume for PosgreSQL to store data to.
kubectl create -f 1-mainflux-postgres-persistence.yml
- Claim Persistent Volume
kubectl create -f 2-mainflux-postgres-claim.yml
- Create PosgreSQL Pod
kubectl create -f 3-mainflux-postgres-pod.yml
- Create PosgreSQL Service
kubectl create -f 4-mainflux-postgres-service.yml
2. Setup NATS
- Change
nats.conf
according to your needs.
Create a Kubernetes configmap to store it:
kubectl create configmap nats-config --from-file nats.conf
- Deploy NATS:
kubectl create -f nats.yml
3. Setup Mainflux Services
- Create Manager Service
kubectl create -f 1-mainflux-manager.yml
- Create HTTP Service
kubectl create -f 2-mainflux-http.yml
- Create CoAP Service
kubectl create -f 4-mainflux-coap.yml
- Create Normalizer Service
kubectl create -f 5-mainflux-normalizer.yml
4. Setup Dashflux Services
- Create Dashflux Deployment and Service
kubectl create -f mainflux-dashflux.yaml
5. Setup NginX Reverse Proxy for Mainflux Services
- Create TLS server side certificate and keys
cd certs
kubectl create secret tls mainflux-secret --key mainflux-server.key --cert mainflux-server.crt
- Create Config Map based on the default.conf file.
cd ..
kubectl create configmap mainflux-nginx-config --from-file=default.conf
- Create Deployment and Service from mainflux-dashflux.yaml file.
kubectl create -f mainflux-nginx.yaml
6. Configure Internet Access
Configure NAT on your Firewall to forward ports 80 (HTTP) and 443 (HTTPS) to mainflux-nginx service