diff --git a/docs/install/kubernetes/README.md b/docs/install/kubernetes/README.md index 65f74d69af..8b1c6d42f6 100644 --- a/docs/install/kubernetes/README.md +++ b/docs/install/kubernetes/README.md @@ -51,6 +51,18 @@ meta: customElements.define('checklist-item', ChecklistItem); + - [AWS EKS](aws_terraform.md) + - [Digital Ocean](digital-ocean.md) + - MicroK8s + - [Azure AKS](azure.md) + + It should run on any Kubernetes platform, but may require some changes for vendor specific Ingress setup. + + By default the Helm chart assumes that the Kubernetes cluster has at least 2 nodes: + + - One used to run the FlowFuse management infrastructure + - One or more used to run the Node-RED Project instances + # Kubernetes Install This guide walks you through detailed set up of FlowFuse Platform on a container envoronment managed by Kubernetes. Typically suited for large on premise deployments or deployment in Cloud infrastructure. diff --git a/docs/install/kubernetes/azure.md b/docs/install/kubernetes/azure.md new file mode 100644 index 0000000000..4b13cd7ec8 --- /dev/null +++ b/docs/install/kubernetes/azure.md @@ -0,0 +1,59 @@ +--- +navTitle: Azure AKS Installation +meta: + description: Learn how to install FlowFuse on AWS EKS with setup details for EKS, Nginx Ingress, AWS SES, and RDS PostgreSQL integration. + tags: + - flowfuse + - nodered + - azure + - aks + - nginx ingress + - helm + - kubernetes +--- + +# Azure AKS Specific details + +This document includes details for installing FlowFuse on Azure AKS + +## Nginx Ingress + +We recommend using the Nginx Ingress controller as this is the one we test with and we have run into limits on the number of Instances with other Ingress Controllers. + +```bash +helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx +helm repo update +helm --kubeconfig=./k8s-flowforge-kubeconfig.yaml install nginx-ingress \ + ingress-nginx/ingress-nginx --namespace ingress-nginx \ + --create-namespace \ + --set controller.publishService.enabled=true \ + --set controller.ingressClassResource.default=true \ + --set controller.config.proxy-body-size="0" + --wait + +``` + +The `controller.config.proxy-body-size="0"` removes the `1m` default payload limit +from the nginx ingress proxy. You can change this to say `5m` which will match the +Node-RED default value. + + +### HTTPS with Nginx Ingress + +Azure's LoadBalancer does not support doing TLS termination so HTTPS certificates will either need to up added to AKS as Kubernetes Secrets or make use of +Certificate Manager to provision certificates either from LetsEncrypt or other ACME Certificate Authorities. + +## Persistent Storage + +If making use of the Persistent Storage feature you will need to provide a StorageClass that support MultiPod mounting. + +e.g. Azure Files backed Persistent Volumes + + +You should also set the `nobrl` Mount Option to ensure things like SQLite databases work correctly if using the Azure Files back Persistent Volumes. + +## User Azure Database for PostgreSQL + +By default the helm chart will install a local copy of PostgreSQL 14. + +But you may make use of Azure's hosted PostgreSQL solution, but you will need to provision the user and empty database before doing the Helm install. \ No newline at end of file