Deploying and Accessing Busola in a Kubernetes Cluster ​
Architecture ​
To expose Busola, you can use APIRule, Ingress, or create your own exposing mechanism. For more details about environment configuration, see Environment-Specific Settings.
Per-IP Rate Limiting ​
For self-hosted deployments, there is no edge-level protection (such as Cloud Armor) in front of Busola. The shipped Ingress configuration includes per-IP rate limiting as a default security measure, but you can configure a different approach or skip it entirely.
ingress-nginx (default) ​
The shipped resources/ingress/ingress.yaml includes per-IP rate-limit annotations for ingress-nginx: 50 RPS sustained (~250 burst) and 50 concurrent connections per source IP. These defaults protect the instance out of the box. To tune them, edit the values directly in resources/ingress/ingress.yaml.
If ingress-nginx is installed in your cluster but is not the default IngressClass, the annotations will have no effect. In that case, add ingressClassName: nginx to the Ingress manifest so the controller picks them up.
Other Ingress Controllers (Traefik, HAProxy, etc.) ​
The nginx-specific annotations are silently ignored by other controllers. If you use a different ingress controller, configure equivalent per-IP rate limits at your own edge.
APIRule (Istio) Deployments ​
Per-IP rate limiting is not configured by default for APIRule-based deployments. APIRule v2alpha1 has no native rate-limit field. To add per-IP throttling, configure an EnvoyFilter at your Istio gateway, or rely on an upstream web application firewall (WAF).
Deploying Busola in a Kubernetes Cluster ​
Follow these steps to deploy Busola in a Kubernetes cluster:
Set the NAMESPACE shell environment variable and create your namespace:
bashexport NAMESPACE={YOUR_NAMESPACE_NAME} kubectl create namespace ${NAMESPACE}Choose one of the following installation options that suit your case.
Accessing Busola Installed in a Kubernetes Cluster ​
You can access Busola using the kubectl port forward command or your Kubernetes cluster with Istio installed.
kubectl ​
Run the following command:
kubectl port-forward --namespace "${NAMESPACE}" services/busola 3001:3001Kubernetes Cluster with Istio Installed ​
Prerequisites ​
- Sidecar Proxy injection for your namespace enabled; see Enable Istio Sidecar Proxy Injection.
- The API Gateway and Istio modules installed, see Quick Install
Procedure ​
Follow these steps to access your Busola page:
To install the Istio required resources, run the following command from the Busola root folder:
bash(cd resources && kubectl apply --namespace "${NAMESPACE}" -k istio)To get the Busola address, run:
bashkubectl get --namespace "${NAMESPACE}" virtualservices.networking.istio.io
NOTE
The VirtualService creation takes a few minutes.
Under HOSTS, you should see an address that you can use to access the Busola page.
Logging into Busola ​
After accessing Busola using one of the methods above, you need to provide your kubeconfig to connect to it.
Providing Kubeconfig ​
Open your web browser and navigate to one of the following:
http://localhost:3001, if using kubectl port-forward- The address from the Istio VirtualService
On the Busola login page, choose Connect to provide cluster connection details.
Provide your kubeconfig, either by uploading the kubeconfig file or by pasting the kubeconfig content in the text area, and select Next Step.
Choose your preferred storage configuration, and select Next Step.
Choose Connect Cluster to establish connection to your cluster.
After successful login, you should see the Busola dashboard with your cluster resources.