π Flusso - Secure, High-Performance Kubernetes Ingress Controller and API Gateway in Rust π¦π
Flusso is a secure, high-performance solution for Kubernetes, combining the functionalities of an Ingress Controller and an API Gateway. Written in Rust, Flusso is designed to meet the needs of modern cloud-native environments, offering a lightweight and efficient alternative to traditional solutions.
- Lightweight and Fast β‘: Built in Rust π¦ for high performance and low memory and CPU consumption.
- Advanced Load Balancing π: Supports custom load balancing algorithms for optimized traffic distribution.
- Secure by Design π: Implements modern TLS protocols with Rustls for enhanced security.
- Dynamic Backends π: Automatically updates routing based on Kubernetes service changes.
- Flexible Configuration π οΈ: Easily configurable via YAML files or environment variables.
- Minimal Dependencies π¦: Avoids unnecessary dependencies for lightweight container images.
Flusso provides two components for deployment: the Ingress Controller and the API Gateway. You can choose to deploy either or both of them depending on your needs. Both components can be deployed using Helm or Docker, and here are the instructions for each.
To install the Flusso Ingress Controller in your Kubernetes cluster, you can use Helm. Follow these steps:
-
Add the Flusso Helm Chart repository:
helm repo add flusso https://diocrafts.github.io/flusso helm repo update
-
Install the Ingress Controller:
helm install flusso-ingress-controller flusso/flusso-ingress-controller --namespace ingress-system --create-namespace
This will install the Flusso Ingress Controller in the
ingress-system
namespace. You can customize your deployment by modifying values in the Helm chart. -
Verify the deployment:
Check the status of the Ingress Controller to ensure it is running:
kubectl get pods -n ingress-system
To install the Flusso API Gateway in your Kubernetes cluster, follow these steps:
-
Add the Flusso Helm Chart repository:
helm repo add flusso https://diocrafts.github.io/flusso helm repo update
-
Install the API Gateway:
helm install flusso-api-gateway flusso/flusso-api-gateway --namespace api-gateway-system --create-namespace
This will install the Flusso API Gateway in the
api-gateway-system
namespace. You can modify the Helm chart values to customize your deployment. -
Verify the deployment:
Check the status of the API Gateway to ensure it is running:
kubectl get pods -n api-gateway-system
Flusso supports several configuration options, both via environment variables and Helm chart values.
- SERVER_ADDR: Define the address where the Ingress Controller will listen. Default is
0.0.0.0:8080
. - TLS_ENABLED: Enable or disable TLS (default is
true
). - TLS_CERT_PATH / TLS_KEY_PATH: Paths to TLS certificate and key files.
Flusso automatically routes incoming traffic to Kubernetes services defined by Ingress resources.
Flusso exposes a web GUI at http://<controller-ip>:8081
with insights into backends and routing.
Flusso is designed for seamless integration in Kubernetes.
- Kubernetes version 1.19 or higher
- Helm version 3 or higher
We welcome contributions to make Flusso even better! If you have suggestions for improvements, open a GitHub issue or submit a pull request. Please refer to our Contributing Guide for more details.
Flusso is licensed under the MIT License.
- GitHub: GitHub Repository
- Docker Hub: Docker Hub Repository
For further support, reach out via GitHub issues or visit our community forums.