Back to Charts

DEPRECATED - kubernetes-dashboard

stable/kubernetes-dashboard/README.md

latest13.0 KB
Original Source

DEPRECATED - kubernetes-dashboard

This chart is deprecated as we move to our own repo (https://kubernetes.github.io/dashboard/) The chart source can be found here: https://github.com/kubernetes/dashboard/tree/master/aio/deploy/helm-chart/kubernetes-dashboard

Kubernetes Dashboard is a general purpose, web-based UI for Kubernetes clusters. It allows users to manage applications running in the cluster and troubleshoot them, as well as manage the cluster itself.

TL;DR

console
helm install stable/kubernetes-dashboard

Introduction

This chart bootstraps a Kubernetes Dashboard deployment on a Kubernetes cluster using the Helm package manager.

Installing the Chart

To install the chart with the release name my-release:

console
helm install stable/kubernetes-dashboard --name my-release

The command deploys kubernetes-dashboard on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.

Uninstalling the Chart

To uninstall/delete the my-release deployment:

console
helm delete my-release

The command removes all the Kubernetes components associated with the chart and deletes the release.

Access control

It is critical for the Kubernetes cluster to correctly setup access control of Kubernetes Dashboard. See this guide for best practises.

It is highly recommended to use RBAC with minimal privileges needed for Dashboard to run.

Configuration

The following table lists the configurable parameters of the kubernetes-dashboard chart and their default values.

ParameterDescriptionDefault
image.repositoryRepository for container imagek8s.gcr.io/kubernetes-dashboard-amd64
image.tagImage tagv1.10.1
image.pullPolicyImage pull policyIfNotPresent
image.pullSecretsImage pull secrets[]
annotationsAnnotations for deployment{}
replicaCountNumber of replicas1
extraArgsAdditional container arguments[]
extraEnvAdditional container environment variables[]
podAnnotationsAnnotations to be added to pods{}
podLabelsAdd custom labels to pods{}
dashboardContainerSecurityContextSecurityContext for the kubernetes dashboard container{}
nodeSelectornode labels for pod assignment{}
tolerationsList of node taints to tolerate (requires Kubernetes >= 1.6)[]
affinityAffinity for pod assignment[]
priorityClassNameName of Priority Class to assign podsnil
enableSkipLoginEnable possibility to skip loginfalse
enableInsecureLoginServe application over HTTP without TLSfalse
service.externalPortDashboard external port443
service.internalPortDashboard internal port443
service.loadBalancerSourceRangeslist of IP CIDRs allowed access to load balancer (if supported)nil
ingress.labelsAdd custom labels[]
ingress.annotationsSpecify ingress classkubernetes.io/ingress.class: nginx
ingress.enabledEnable ingress controller resourcefalse
ingress.pathsPaths to match against incoming requests. Both / and /* are required to work on gce ingress.[/]
ingress.hostsDashboard Hostnamesnil
ingress.tlsIngress TLS configuration[]
resourcesPod resource requests & limitslimits: {cpu: 100m, memory: 100Mi}, requests: {cpu: 100m, memory: 100Mi}
rbac.createCreate & use RBAC resourcestrue
rbac.clusterAdminRole"cluster-admin" ClusterRole will be used for dashboard ServiceAccount (NOT RECOMMENDED)false
rbac.clusterReadOnlyRoleIf clusterAdminRole disabled, an additional role will be created with read only permissions to all resources listed inside.false
serviceAccount.createWhether a new service account name that the agent will use should be created.true
serviceAccount.nameService account to be used. If not set and serviceAccount.create is true a name is generated using the fullname template.
livenessProbe.initialDelaySecondsNumber of seconds to wait before sending first probe30
livenessProbe.timeoutSecondsNumber of seconds to wait for probe response30
podDisruptionBudget.enabledCreate a PodDisruptionBudgetfalse
podDisruptionBudget.minAvailableMinimum available instances; ignored if there is no PodDisruptionBudget
podDisruptionBudget.maxUnavailableMaximum unavailable instances; ignored if there is no PodDisruptionBudget
securityContextPodSecurityContext for pod level securityContext{}
networkPolicyWhether to create a network policy that allows access to the servicefalse

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

console
helm install stable/kubernetes-dashboard --name my-release \
  --set=service.externalPort=8080,resources.limits.cpu=200m

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,

console
helm install stable/kubernetes-dashboard --name my-release -f values.yaml

Tip: You can use the default values.yaml

Using the dashboard with 'kubectl proxy'

When running 'kubectl proxy', the address localhost:8001/ui automatically expands to:

  • http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:https/proxy/ or
  • http://localhost:8001/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:http/proxy/ if enableInsecureLogin=true

For this to reach the dashboard, the name of the service must be 'kubernetes-dashboard', not any other value as set by Helm. You can manually specify this using the value 'fullnameOverride':

fullnameOverride: 'kubernetes-dashboard'

Upgrade from 0.x.x to 1.x.x

Upgrade from 0.x.x version to 1.x.x version is seamless if you use default ingress.path value. If you have non-default ingress.path values with version 0.x.x, you need to add your custom path in ingress.paths list value as shown as examples in values.yaml.

Notes: