> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Demo Accessing UI

> Guide to accessing Kubeflow Central Dashboard from a workstation using kubectl port forward, inspecting Kubernetes services, and overview of dashboard features like notebooks and pipelines

In this lesson you'll learn how to access the Kubeflow Central Dashboard (the Kubeflow UI) from your workstation and review the main areas available in the dashboard. Before opening the UI, inspect a few Kubernetes resources to determine how the cluster exposes Kubeflow.

## Inspect cluster services

Kubernetes Services define how pods communicate inside the cluster and how traffic is routed to workloads. To list services across all namespaces run:

```bash theme={null}
kubectl get svc -A
```

A representative excerpt (trimmed to the relevant namespaces and services) looks like this:

```bash theme={null}
NAMESPACE       NAME                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)
istio-system    istio-ingressgateway      ClusterIP   10.96.219.208    <none>        15021/TCP,80/TCP
istio-system    istiod                    ClusterIP   10.96.118.44     <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP
default         kubernetes                ClusterIP   10.96.0.1        <none>        443/TCP
auth            dex                       ClusterIP   10.96.123.35     <none>        5556/TCP
```

We are interested in the `istio-ingressgateway` service in the `istio-system` namespace. It uses type `ClusterIP` and exposes ports 80 and 443. A `ClusterIP` service is reachable only from within the cluster by default — it is not exposed to your local machine or the internet.

| Service type | Reachability | Common use |
| - | - | - |
| `ClusterIP` | Cluster-internal only | Intra-cluster traffic (default for many control-plane services) |
| `NodePort` | Accessible on node IP at a high port | Quick external exposure on each node |
| `LoadBalancer` | Provided by cloud provider with an external IP | Production-grade external access (cloud-managed) |

## Create a local proxy with kubectl port-forward

To reach the Kubeflow UI from your workstation, forward a local port to the service port inside the cluster. Set the Istio namespace and run a port-forward from your local port 8080 to the service port 80:

```bash theme={null}
export ISTIO_NAMESPACE=istio-system
kubectl port-forward svc/istio-ingressgateway -n ${ISTIO_NAMESPACE} 8080:80
```

This forwards requests to `http://localhost:8080` to the ingress gateway's port 80 inside the cluster. Once the port-forward is running, open your browser to `http://localhost:8080` to reach the Kubeflow Central Dashboard.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/MGkgrGfKHDtoCnUb/images/Kubeflow/Working-With-Kubeflow/Demo-Accessing-UI/kubeflow-signin-dex-localhost-8080.jpg?fit=max&auto=format&n=MGkgrGfKHDtoCnUb&q=85&s=4b33bf7cad578a42f9bc9f42806fcc96" alt="A web browser displaying the Kubeflow sign-in page with the Kubeflow logo centered and a &#x22;Sign in with Dex&#x22; button. The address bar shows localhost:8080." width="1920" height="1080" data-path="images/Kubeflow/Working-With-Kubeflow/Demo-Accessing-UI/kubeflow-signin-dex-localhost-8080.jpg" />
</Frame>

See the official documentation for the same steps under ["Kubeflow Dashboard Access"](https://www.kubeflow.org/docs/components/central-dashboards/).

```bash theme={null}
# environment variable and port-forward (as shown above)
export ISTIO_NAMESPACE=istio-system
kubectl port-forward svc/istio-ingressgateway -n ${ISTIO_NAMESPACE} 8080:80

# default demo login (example)
Username: admin
Password: 12341234
```

<Callout icon="warning" color="#FF6B6B">
  Do not use default demo credentials for production clusters. Always secure the dashboard with proper authentication and rotate default accounts. If you expose the ingress gateway publicly, ensure you configure strong authentication, TLS, and network controls.
</Callout>

<Callout icon="lightbulb" color="#1CB2FE">
  If you need public access (not recommended for production without proper auth), you can expose the ingress gateway via a `LoadBalancer` service or configure an external reverse proxy. For most local admin tasks, `kubectl port-forward` is the simplest and safest approach.
</Callout>

## Overview: Kubeflow Central Dashboard

After authenticating, the Kubeflow Central Dashboard provides a namespace-aware overview of Kubeflow components, quick links, and recent activity. It is the central place to monitor and manage notebooks, pipelines, experiments, and model serving.

Notebooks is where you create and manage Jupyter instances (and other notebook types) that run in your cluster:

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/MGkgrGfKHDtoCnUb/images/Kubeflow/Working-With-Kubeflow/Demo-Accessing-UI/kubeflow-central-dashboard-notebooks.jpg?fit=max&auto=format&n=MGkgrGfKHDtoCnUb&q=85&s=2a960b0bba32154f251c1f36e8675e55" alt="A screenshot of the Kubeflow Central Dashboard web interface with the left navigation menu (Home, Notebooks selected, TensorBoards, Volumes, etc.) and main panels showing Quick shortcuts, Recent Notebooks/Pipelines, and Documentation links. The Notebooks section is highlighted and the dashboard lists actions like creating a notebook, uploading a pipeline, and viewing docs." width="1920" height="1080" data-path="images/Kubeflow/Working-With-Kubeflow/Demo-Accessing-UI/kubeflow-central-dashboard-notebooks.jpg" />
</Frame>

Clicking New Notebook lets you select the notebook runtime and resource configuration (CPU, memory, GPUs). Kubeflow supports multiple runtimes so data scientists can run JupyterLab, VS Code, or RStudio directly in the cluster:

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/MGkgrGfKHDtoCnUb/images/Kubeflow/Working-With-Kubeflow/Demo-Accessing-UI/kubeflow-new-notebook-types-resources-menu.jpg?fit=max&auto=format&n=MGkgrGfKHDtoCnUb&q=85&s=de1c5a9ce64e4d47024fe7f546dd6b49" alt="A Kubeflow dashboard &#x22;New notebook&#x22; screen showing selectable notebook types (JupyterLab, VisualStudio Code, RStudio). The page also displays CPU/RAM and GPU configuration fields with a left-side navigation menu." width="1920" height="1080" data-path="images/Kubeflow/Working-With-Kubeflow/Demo-Accessing-UI/kubeflow-new-notebook-types-resources-menu.jpg" />
</Frame>

Pipelines is where you define and orchestrate machine learning workflows — data ingestion, preprocessing, training, evaluation, and deployment. The UI visualizes pipeline graphs and lets you create runs to execute them:

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/MGkgrGfKHDtoCnUb/images/Kubeflow/Working-With-Kubeflow/Demo-Accessing-UI/kubeflow-pipelines-dsl-control-structures-ui.jpg?fit=max&auto=format&n=MGkgrGfKHDtoCnUb&q=85&s=fe545001f8daeb43c26166deb3ef5bca" alt="A screenshot of the Kubeflow Pipelines web UI showing a pipeline graph titled &#x22;[Tutorial] DSL - Control structures&#x22; with nodes labeled exit-handler-1, flip-coin-op, print-op, and for-loop-3. The left sidebar shows navigation items like Home, Notebooks, and Pipelines." width="1920" height="1080" data-path="images/Kubeflow/Working-With-Kubeflow/Demo-Accessing-UI/kubeflow-pipelines-dsl-control-structures-ui.jpg" />
</Frame>

Key dashboard sections at a glance:

| Section | Purpose |
| - | - |
| Notebooks | Create and manage JupyterLab, VS Code, RStudio notebook servers on the cluster |
| Pipelines | Define, visualize, and run ML workflows; view runs, experiments, and artifacts |
| TensorBoards | Monitor training jobs and visualize metrics with TensorBoard |
| Volumes | Manage persistent storage used by notebooks, pipelines, and workloads |
| Katib | Automated hyperparameter tuning and experiment management |
| KServe | Model serving and inference endpoints after training |

Later you'll get hands-on experience creating notebooks, running pipelines, tuning models with Katib, and deploying models with KServe. The Kubeflow Central Dashboard is the primary UI for monitoring and managing these activities.

## Links and references

* Kubeflow Dashboard Access: [https://www.kubeflow.org/docs/components/central-dashboards/](https://www.kubeflow.org/docs/components/central-dashboards/)
* Kubernetes Services overview: [https://kubernetes.io/docs/concepts/services-networking/service/](https://kubernetes.io/docs/concepts/services-networking/service/)
* Kubeflow documentation: [https://www.kubeflow.org/docs/](https://www.kubeflow.org/docs/)

<CardGroup>
  <Card title="Watch Video" icon="video" cta="Learn more" href="https://learn.kodekloud.com/user/courses/kubeflow/module/bece8da9-953e-480e-8774-b25b66c3830f/lesson/948c5cb4-a8b3-4500-a3b8-29f47cc2d415" />
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.