diff --git a/k8s/apps/n8n/deployment-main.yaml b/k8s/apps/n8n/deployment-main.yaml index 08fe675..1a0df25 100644 --- a/k8s/apps/n8n/deployment-main.yaml +++ b/k8s/apps/n8n/deployment-main.yaml @@ -54,6 +54,8 @@ spec: ports: - containerPort: 5678 name: http + - containerPort: 5679 + name: task-broker env: - name: PATH value: "/opt/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" @@ -73,6 +75,10 @@ spec: value: "true" - name: N8N_RUNNERS_MODE value: "external" + - name: N8N_RUNNERS_BROKER_LISTEN_ADDRESS + value: "0.0.0.0" + - name: N8N_RUNNERS_BROKER_PORT + value: "5679" - name: EXECUTIONS_MODE value: "queue" - name: QUEUE_BULL_REDIS_HOST diff --git a/k8s/apps/n8n/deployment-runner.yaml b/k8s/apps/n8n/deployment-runner.yaml new file mode 100644 index 0000000..ee75ecd --- /dev/null +++ b/k8s/apps/n8n/deployment-runner.yaml @@ -0,0 +1,92 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: n8n-runner + labels: + app: n8n + component: runner +spec: + replicas: 2 + selector: + matchLabels: + app: n8n + component: runner + template: + metadata: + labels: + app: n8n + component: runner + spec: + serviceAccountName: n8n + containers: + - name: n8n-runner + image: docker.n8n.io/n8nio/n8n:latest + command: + - /bin/sh + - -c + - /usr/local/bin/task-runner-launcher javascript + env: + - name: PATH + value: "/opt/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + - name: HOME + value: "/home/node" + - name: N8N_RUNNERS_TASK_BROKER_URI + value: "n8n:5679" + - name: N8N_RUNNERS_MODE + value: "external" + - name: N8N_RUNNERS_MAX_CONCURRENCY + value: "10" + - name: N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT + value: "30" + - name: NODE_OPTIONS + value: "--max-old-space-size=1024" + - name: GENERIC_TIMEZONE + value: "Europe/Moscow" + - name: TZ + value: "Europe/Moscow" + - name: N8N_RUNNERS_AUTH_TOKEN + valueFrom: + secretKeyRef: + name: credentials + key: runnertoken + volumeMounts: + - name: n8n-data + mountPath: /home/node/.n8n + - name: tools + mountPath: /opt/tools + resources: + requests: + cpu: 500m + memory: 512Mi + limits: + cpu: 2000m + memory: 2048Mi + livenessProbe: + httpGet: + path: /healthz + port: 5680 + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 5 + failureThreshold: 3 + readinessProbe: + httpGet: + path: /healthz + port: 5680 + initialDelaySeconds: 15 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 3 + volumes: + - name: n8n-data + persistentVolumeClaim: + claimName: n8n-data + - name: tools + persistentVolumeClaim: + claimName: n8n-tools + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + runAsNonRoot: true + fsGroup: 1000 diff --git a/k8s/apps/n8n/deployment-worker.yaml b/k8s/apps/n8n/deployment-worker.yaml index 4f8a7f2..6e533f0 100644 --- a/k8s/apps/n8n/deployment-worker.yaml +++ b/k8s/apps/n8n/deployment-worker.yaml @@ -36,6 +36,10 @@ spec: value: "true" - name: N8N_RUNNERS_MODE value: "external" + - name: N8N_RUNNERS_BROKER_LISTEN_ADDRESS + value: "0.0.0.0" + - name: N8N_RUNNERS_BROKER_PORT + value: "5679" - name: N8N_PORT value: "80" - name: EXECUTIONS_MODE diff --git a/k8s/apps/n8n/kustomization.yaml b/k8s/apps/n8n/kustomization.yaml index 436ea02..3e0ace7 100644 --- a/k8s/apps/n8n/kustomization.yaml +++ b/k8s/apps/n8n/kustomization.yaml @@ -10,7 +10,8 @@ resources: - paddleocr-deployment.yaml - paddleocr-service.yaml - deployment-main.yaml - - deployment-worker.yaml +# - deployment-worker.yaml + - deployment-runner.yaml - service.yaml - ingress.yaml diff --git a/k8s/apps/n8n/service.yaml b/k8s/apps/n8n/service.yaml index 46d204f..90d8c36 100644 --- a/k8s/apps/n8n/service.yaml +++ b/k8s/apps/n8n/service.yaml @@ -14,4 +14,8 @@ spec: port: 80 targetPort: 5678 protocol: TCP + - name: task-broker + port: 5679 + targetPort: 5679 + protocol: TCP type: ClusterIP \ No newline at end of file