Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -168,4 +168,4 @@ You will need to create an ELB (Elastic Load Balancer) to expose the nginx Ingre
2. Create an ELB by following [these steps.](https://kubernetes.github.io/ingress-nginx/deploy/#aws)

## References
https://kubernetes.github.io/ingress-nginx/
https://kubernetes.github.io/ingress-nginx/
35 changes: 20 additions & 15 deletions content/docs/1.11.0/deploy/accessing-the-ui/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,44 @@ title: Accessing the UI
weight: 2
---

Exposing the Longhorn UI allows external access to the management console. The choice of Ingress controller (for example, **ingress-nginx**, **Traefik**, or **HAProxy**) affects only how the UI is accessed. It has **no impact on the Longhorn backend, storage operations, or data integrity**.

> **Note**: As of November 2025, the Kubernetes project has announced the retirement of the ingress-nginx controller. For details, [see the official announcement](https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/).

## Prerequisites for Access and Authentication

These instructions assume that Longhorn is installed.
These instructions assume that Longhorn is already installed in the cluster.

If you installed Longhorn using the YAML manifest, you must set up an Ingress controller to allow external traffic into the cluster. Authentication is **not enabled by default**. This applies to both Helm and `kubectl` installations.

If you installed Longhorn YAML manifest, you'll need to set up an Ingress controller to allow external traffic into the cluster, and authentication will not be enabled by default. This applies to Helm and kubectl installations. For information on creating an NGINX Ingress controller with basic authentication, refer to [this section.](./longhorn-ingress) Alternatively, you can use [Gateway API HTTPRoute](./longhorn-httproute) as a modern approach to expose the Longhorn UI.
For information on creating an NGINX Ingress controller with basic authentication, see [this section](./longhorn-ingress). Alternatively, you can use the [Gateway API HTTPRoute](./longhorn-httproute) as a modern approach to exposing the Longhorn UI.

If Longhorn was installed as a Rancher catalog app, Rancher automatically created an Ingress controller for you with access control (the rancher-proxy).
If Longhorn was installed as a Rancher catalog app, Rancher automatically creates an Ingress controller with access control (the `rancher-proxy`).

## Accessing the Longhorn UI

Once Longhorn has been installed in your Kubernetes cluster, you can access the UI dashboard.
After Longhorn is installed in your Kubernetes cluster, you can access the UI dashboard by following these steps.

1. Get the Longhorn's external service IP:
1. Retrieve the Longhorn service information:

```shell
kubectl -n longhorn-system get svc
```

For Longhorn v0.8.0, the output should look like this, and the `CLUSTER-IP` of the `longhorn-frontend` is used to access the Longhorn UI:
For Longhorn v0.8.0 and later, the output resembles the following. Use the `CLUSTER-IP` of the `longhorn-frontend` service to access the UI:

```shell
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
longhorn-backend ClusterIP 10.20.248.250 <none> 9500/TCP 58m
longhorn-frontend ClusterIP 10.20.245.110 <none> 80/TCP 58m

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
longhorn-backend ClusterIP 10.20.248.250 <none> 9500/TCP 58m
longhorn-frontend ClusterIP 10.20.245.110 <none> 80/TCP 58m
```

In the example above, the IP is `10.20.245.110`.
> For Longhorn v0.8.0+, UI service type changed from `LoadBalancer` to `ClusterIP.`
In this example, the UI is accessible at `10.20.245.110`.

> **Note**: Starting with Longhorn v0.8.0, the UI service type changed from `LoadBalancer` to `ClusterIP`.

2. Navigate to the IP of `longhorn-frontend` in your browser.
2. Open a browser and navigate to the IP address of the `longhorn-frontend` service.

The Longhorn UI looks like this:
The Longhorn UI appears as follows:

{{< figure src="/img/screenshots/getting-started/v1.10.0/longhorn-ui.png" >}}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
weight: 1
---

As of November 2025, the Kubernetes project has [announced the retirement of the ingress-nginx controller](https://kubernetes.io/blog/2025/11/11/ingress-nginx-retirement/). While it is used here as a configuration example, users are encouraged to explore maintained alternatives such as Traefik, HAProxy, or other Gateway API-compliant controllers.

If you install Longhorn on a Kubernetes cluster with kubectl or Helm, you will need to create an Ingress to allow external traffic to reach the Longhorn UI.

Authentication is not enabled by default for kubectl and Helm installations. In these steps, you'll learn how to create an Ingress with basic authentication using annotations for the nginx ingress controller.
Expand Down Expand Up @@ -168,4 +170,5 @@ You will need to create an ELB (Elastic Load Balancer) to expose the nginx Ingre
2. Create an ELB by following [these steps.](https://kubernetes.github.io/ingress-nginx/deploy/#aws)

## References
https://kubernetes.github.io/ingress-nginx/

https://kubernetes.github.io/ingress-nginx/