Dashboard Access

There are several options for accessing the Kasten K10 dashboard.

Access via kubectl

By default, the K10 dashboard will not be exposed externally. To establish a connection to it use the following kubectl commands.

For kubectl 1.10 or later:

kubectl --namespace kasten-io port-forward service/gateway 8080:8000

For kubectl prior to 1.10:

gw_pod=$(kubectl get pods --selector=service=gateway -n kasten-io --output=jsonpath={.items[0].metadata.name})
kubectl --namespace kasten-io port-forward $gw_pod 8080:8000

The K10 dashboard will be available at


If you installed K10 with a different release name than k10 (specified via the --name option in the install command), the above URL should be modified to replace the last occurrence of k10 with the specified release name. The revised URL would look like<release-name>/#/

If you are running on GKE and want to access the dashboard without local kubectl access, you can use the following advanced GKE console instructions:

Accessing via a LoadBalancer

If you would like to expose the K10 dashboard via an external load balancer, you will need to configure an authentication method. The currently supported options are Basic Authentication, Token Authentication, or OpenID Connect Authentication.

To configure the K10 dashboard to be exposed through the default LoadBalancer and potentially a DNS entry, please use the following helm options. If you have not yet installed K10, add the options to the install command for your environment. Alternatively, you can upgrade the installation as follows:

# example uses Token Authentication method
helm upgrade k10 kasten/k10 --namespace=kasten-io \
  --reuse-values \
  --set externalGateway.create=true \
  --set auth.tokenAuth.enabled=true

Configuring DNS

The K10 dashboard will be available at the /k10/ URL path of the DNS or IP address setup using the below options.


If you installed K10 with a different release name than k10 (specified via the --name option in the install command), the dashboard will be available at the /<release-name>/ URL path.

Using ExternalDNS

If your Kubernetes cluster is already using ExternalDNS and has it properly configured, you should add the following options to automatically configure a DNS entry for the load balancer.

--set externalGateway.externalGateway.fqdn.type=external-dns \
--set externalGateway.fqdn.name=<my-desired.dns.name>

Manually adding a DNS entry

If your environment does not support ExternalDNS, first find the LoadBalancer's public DNS/IP address:

kubectl --namespace kasten-io get service gateway-ext \
   -o jsonpath='{.status.loadBalancer.ingress[].hostname}'

You can then optionally setup a DNS record that points from a desired FQDN to the LoadBalancer DNS or IP address from above.

Adding Custom Annotations

In certain scenarios, custom annotations on the LoadBalancer be required. These can be added as a part of the install process too. For example, if an annotation of the form service.beta.kubernetes.io/aws-loadbalancer-internal: was needed, the following escaped option could be added to the helm install command.

--set externalGateway.annotations="service\.beta\.kubernetes\.io\/aws\-loadbalancer\-internal"="0\.0\.0\.0\/0"

Existing Ingress Controller

If you already have an ingress controller installed and would like to expose the K10 dashboard via it, you need to specify the following option to the helm install command:

--set ingress.create=true

In this case, you will need to follow your specific ingress controller guidelines to expose an external endpoint for the k10-ingress Kubernetes ingress object that will be installed in the kasten-io namespace as part of the Helm install.

You will then have the option to use the kubectl proxy method described above or an externally accessible endpoint but the configuration will depend on your specific ingress controller configuration.

Additionally, You can choose the ingress class for the ingress object by specifying the following option to the helm command:

--set ingress.create=true --set ingress.class=nginx