Merge pull request #247 from rogersacchelli/dev
Kubernetes Deploy With Ingress Controller
This commit is contained in:
commit
35d539d61c
|
|
@ -19,6 +19,15 @@ git clone https://github.com/OktopUSP/oktopus
|
||||||
export DEPLOYMENT_PATH=oktopus/deploy/kubernetes
|
export DEPLOYMENT_PATH=oktopus/deploy/kubernetes
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## HAProxy Ingress Controller
|
||||||
|
|
||||||
|
```shell
|
||||||
|
helm install haproxy-kubernetes-ingress haproxytech/kubernetes-ingress \
|
||||||
|
--create-namespace \
|
||||||
|
--namespace haproxy-controller \
|
||||||
|
--set controller.kind=DaemonSet \
|
||||||
|
--set controller.daemonset.useHostPort=true
|
||||||
|
```
|
||||||
|
|
||||||
## MongoBD
|
## MongoBD
|
||||||
|
|
||||||
|
|
@ -49,27 +58,6 @@ helm install nats nats/nats --set config.jetstream.enabled=true
|
||||||
|
|
||||||
## Oktopus
|
## Oktopus
|
||||||
|
|
||||||
|
|
||||||
<b>Node Ports</b>
|
|
||||||
|
|
||||||
For this deployment, we are not using a load balancer and kubernetes is deployed on-premises so we are using Nodeports to insource the client traffic into cluster. below the ports set on deployment files:
|
|
||||||
|
|
||||||
1. MQTT broker service (mqtt-svc): 30000
|
|
||||||
2. Frontend (frontend-svc): 30001
|
|
||||||
3. SocketIO: (socketio-svc): 30002
|
|
||||||
4. Controller (controller-svc): 30003
|
|
||||||
5. WebSocket (ws-svc): 30005
|
|
||||||
|
|
||||||
Before deploying the files, edit the frontend.yaml file to set the correct enviroment variables:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
env:
|
|
||||||
- name: NEXT_PUBLIC_REST_ENDPOINT
|
|
||||||
value: "<FRONTEND_IP>:30003"
|
|
||||||
- name: NEXT_PUBLIC_WS_ENDPOINT
|
|
||||||
value: "<FRONTEND_IP>:30005"
|
|
||||||
```
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
kubectl apply -f $DEPLOYMENT_PATH/mqtt.yaml
|
kubectl apply -f $DEPLOYMENT_PATH/mqtt.yaml
|
||||||
kubectl apply -f $DEPLOYMENT_PATH/mqtt-adapter.yaml
|
kubectl apply -f $DEPLOYMENT_PATH/mqtt-adapter.yaml
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ spec:
|
||||||
- name: NATS_VERIFY_CERTIFICATES
|
- name: NATS_VERIFY_CERTIFICATES
|
||||||
value: "false"
|
value: "false"
|
||||||
- name: MONGO_URI
|
- name: MONGO_URI
|
||||||
value: "mongodb://oktopusp:oktopusp@mongodb-0.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-1.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-2.mongodb-svc.mongodb.svc.cluster.local:27017/adapter?replicaSet=mongodb&ssl=false"
|
value: "mongodb://oktopusp:oktopusp@mongodb-0.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-1.mongodb-svc.mongodb.svc.cluster.local:27017,mongodb-2.mongodb-svc.mongodb.svc.cluster.local:27017/?replicaSet=mongodb&ssl=false"
|
||||||
- name: CONTROLLER_ID
|
- name: CONTROLLER_ID
|
||||||
value: "oktopusController"
|
value: "oktopusController"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,5 @@ spec:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
port: 8000
|
port: 8000
|
||||||
targetPort: 8000
|
targetPort: 8000
|
||||||
nodePort: 30003
|
type: ClusterIP
|
||||||
type: NodePort
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,10 +28,8 @@ spec:
|
||||||
- containerPort: 3000
|
- containerPort: 3000
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: NEXT_PUBLIC_REST_ENDPOINT
|
- name: NEXT_PUBLIC_REST_ENDPOINT
|
||||||
value: "192.168.1.130:30003"
|
value: "/api"
|
||||||
- name: NEXT_PUBLIC_WS_ENDPOINT
|
|
||||||
value: "192.168.1.130:30005"
|
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
|
|
@ -44,5 +42,5 @@ spec:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
port: 3000
|
port: 3000
|
||||||
targetPort: 3000
|
targetPort: 3000
|
||||||
nodePort: 30001
|
#externalTrafficPolicy: Local
|
||||||
type: NodePort
|
type: ClusterIP
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: haproxy-kubernetes-ingress
|
|
||||||
namespace: haproxy-controller
|
|
||||||
data:
|
|
||||||
syslog-server: "address:stdout, format: raw, facility:daemon"
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: haproxy-tcp
|
|
||||||
namespace: default
|
|
||||||
data:
|
|
||||||
1883: # Port where the frontend is going to listen to.
|
|
||||||
default/mqtt-svc:1883 # Kubernetes service in the format NS/ServiceName:ServicePort
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
controller:
|
|
||||||
service:
|
|
||||||
tcpPorts:
|
|
||||||
- name: mqtt
|
|
||||||
port: 1883
|
|
||||||
targetPort: 1883
|
|
||||||
extraArgs:
|
|
||||||
- --configmap-tcp-services=default/haproxy-tcp
|
|
||||||
34
deploy/kubernetes/ingress.yaml
Normal file
34
deploy/kubernetes/ingress.yaml
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: web-ingress
|
||||||
|
namespace: default
|
||||||
|
annotations:
|
||||||
|
spec:
|
||||||
|
ingressClassName: "haproxy"
|
||||||
|
rules:
|
||||||
|
- host: oktopus.rdss.cloud
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: frontend-svc
|
||||||
|
port:
|
||||||
|
number: 3000
|
||||||
|
- path: /api
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: controller-svc
|
||||||
|
port:
|
||||||
|
number: 8000
|
||||||
|
- path: /socket.io
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: socketio-svc
|
||||||
|
port:
|
||||||
|
number: 5000
|
||||||
|
|
||||||
|
|
@ -31,7 +31,7 @@ spec:
|
||||||
- name: NATS_VERIFY_CERTIFICATES
|
- name: NATS_VERIFY_CERTIFICATES
|
||||||
value: "false"
|
value: "false"
|
||||||
- name: MQTT_URL
|
- name: MQTT_URL
|
||||||
value: "tcp://mqtt:1883"
|
value: "tcp://mqtt-svc:1883"
|
||||||
- name: MQTT_CLIENT_ID
|
- name: MQTT_CLIENT_ID
|
||||||
value: "mqtt-adapter"
|
value: "mqtt-adapter"
|
||||||
- name: MQTT_USERNAME
|
- name: MQTT_USERNAME
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ spec:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
port: 1883
|
port: 1883
|
||||||
targetPort: 1883
|
targetPort: 1883
|
||||||
nodePort: 30000
|
externalTrafficPolicy: Local
|
||||||
type: NodePort
|
type: LoadBalancer
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
|
|
@ -46,3 +46,6 @@ spec:
|
||||||
value: "false"
|
value: "false"
|
||||||
- name: LOG_LEVEL
|
- name: LOG_LEVEL
|
||||||
value: "0" # 0 - DEBUG
|
value: "0" # 0 - DEBUG
|
||||||
|
- name: REDIS_ENABLE
|
||||||
|
value: "false"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ spec:
|
||||||
env:
|
env:
|
||||||
- name: NATS_URL
|
- name: NATS_URL
|
||||||
value: "nats:4222"
|
value: "nats:4222"
|
||||||
|
- name: CORS_ALLOWED_ORIGINS
|
||||||
|
value: ""
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
|
|
@ -31,5 +33,3 @@ spec:
|
||||||
- protocol: TCP
|
- protocol: TCP
|
||||||
port: 5000
|
port: 5000
|
||||||
targetPort: 5000
|
targetPort: 5000
|
||||||
nodePort: 30002
|
|
||||||
type: NodePort
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user