Top Related Projects
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Complete container management platform
Making Docker and Kubernetes management easy.
Highly extensible platform for developers to better understand the complexity of Kubernetes clusters.
Lens - The way the world runs Kubernetes
Quick Overview
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.
Pros
- Provides a user-friendly interface for managing Kubernetes resources
- Offers a comprehensive view of cluster health and resource utilization
- Supports role-based access control (RBAC) for secure access management
- Regularly updated and maintained by the Kubernetes community
Cons
- May expose sensitive information if not properly secured
- Can be resource-intensive for large clusters
- Limited customization options compared to command-line tools
- Requires additional setup and maintenance alongside the Kubernetes cluster
Getting Started
To deploy Kubernetes Dashboard, follow these steps:
-
Apply the dashboard manifest:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
-
Create a sample user and role binding:
apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard
-
Apply the user configuration:
kubectl apply -f admin-user.yaml
-
Get the token for the admin user:
kubectl -n kubernetes-dashboard create token admin-user
-
Start the kubectl proxy:
kubectl proxy
-
Access the dashboard at: http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
Remember to secure your dashboard properly in production environments.
Competitor Comparisons
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Pros of Grafana
- More versatile, supporting various data sources beyond Kubernetes
- Richer visualization options and customizable dashboards
- Larger community and ecosystem with extensive plugin support
Cons of Grafana
- Steeper learning curve for Kubernetes-specific monitoring
- Requires additional setup and configuration for Kubernetes integration
- May be overkill for simple Kubernetes monitoring needs
Code Comparison
Grafana (dashboard JSON configuration):
{
"panels": [
{
"type": "graph",
"title": "CPU Usage",
"datasource": "Prometheus",
"targets": [
{ "expr": "sum(rate(container_cpu_usage_seconds_total[5m])) by (pod)" }
]
}
]
}
Kubernetes Dashboard (YAML configuration):
apiVersion: v1
kind: ConfigMap
metadata:
name: kubernetes-dashboard-settings
data:
settings.json: |
{
"clusterName": "my-cluster",
"itemsPerPage": 10,
"logsAutoRefreshTimeInterval": 5
}
Both repositories offer web-based interfaces for monitoring and managing Kubernetes clusters. Grafana provides a more flexible and feature-rich solution for general-purpose monitoring, while Kubernetes Dashboard is tailored specifically for Kubernetes environments with a simpler setup process.
Complete container management platform
Pros of Rancher
- Offers multi-cluster management and supports multiple Kubernetes distributions
- Provides a more comprehensive set of features, including user management, RBAC, and CI/CD integration
- Includes built-in monitoring and logging solutions
Cons of Rancher
- More complex setup and higher resource requirements
- Steeper learning curve for new users
- May introduce additional overhead for small-scale deployments
Code Comparison
Rancher (Go):
func (c *Cluster) Create(ctx context.Context) error {
c.CustomConfig = configbuilder.BuildConfig(c.Spec)
return c.DoCreate(ctx)
}
Kubernetes Dashboard (TypeScript):
export class CreateResource extends ResourceBase {
async create(): Promise<K8sObject> {
return this.restClient.post(this.getUrl(), this.resource);
}
}
Both projects use different programming languages for their core functionality. Rancher primarily uses Go, while Kubernetes Dashboard is built with TypeScript. The code snippets show basic resource creation methods, highlighting the different approaches and language-specific features used in each project.
Rancher offers a more comprehensive management solution with advanced features, while Kubernetes Dashboard provides a simpler, lightweight interface for cluster visualization and management. The choice between the two depends on the specific needs and scale of the Kubernetes deployment.
Making Docker and Kubernetes management easy.
Pros of Portainer
- Supports multiple container orchestration platforms (Docker, Kubernetes, Swarm)
- User-friendly interface with more intuitive navigation
- Built-in template library for quick application deployment
Cons of Portainer
- Less native integration with Kubernetes-specific features
- May require additional setup for advanced Kubernetes functionalities
- Not as deeply integrated with Kubernetes RBAC system
Code Comparison
Portainer (JavaScript):
app.component('portainerDashboard', {
templateUrl: './dashboard.html',
controller: 'DashboardController'
});
Kubernetes Dashboard (Go):
func (self *DashboardController) handleDashboard(c *gin.Context) {
c.HTML(http.StatusOK, "dashboard.html", gin.H{
"title": "Kubernetes Dashboard",
})
}
Both projects use different technologies for their frontend and backend implementations. Portainer primarily uses JavaScript and Angular for its web interface, while Kubernetes Dashboard is built with Go and uses a combination of Angular and React for its frontend.
Portainer offers a more versatile solution for managing multiple container platforms, including Kubernetes, with a focus on ease of use. Kubernetes Dashboard, on the other hand, provides a more specialized and deeply integrated experience for Kubernetes clusters, with better support for advanced Kubernetes features and native RBAC integration.
Highly extensible platform for developers to better understand the complexity of Kubernetes clusters.
Pros of Octant
- More extensible plugin architecture for custom views and functionality
- Richer, more interactive UI with real-time updates
- Better support for custom resource definitions (CRDs)
Cons of Octant
- Less mature and stable compared to Dashboard
- Smaller community and fewer contributors
- Discontinued project (archived by VMware)
Code Comparison
Octant (Go):
func (p *Plugin) Capabilities() *plugin.Capabilities {
return &plugin.Capabilities{
SupportsPrinterConfig: []schema.GroupVersionKind{
{Group: "example.com", Version: "v1", Kind: "Plugin"},
},
}
}
Dashboard (TypeScript):
export class KubernetesObjectList<T extends Resource> implements ResourceList {
constructor(
public readonly items: T[],
public readonly kind: string,
public readonly apiVersion: string,
) {}
}
Both projects aim to provide a web-based UI for Kubernetes cluster management, but they differ in their approach and implementation. Octant offers a more flexible and extensible architecture, allowing developers to create custom plugins and views. It also provides a more interactive and real-time user experience. However, Octant has been archived by VMware, which may impact its long-term viability.
Dashboard, on the other hand, is the official Kubernetes project and benefits from a larger community and more stable development. It offers a more straightforward and traditional UI but may be less customizable compared to Octant.
Lens - The way the world runs Kubernetes
Pros of Lens
- Offers a desktop application with a more feature-rich and user-friendly interface
- Provides multi-cluster management capabilities
- Includes built-in terminal access and resource editing functionality
Cons of Lens
- Requires installation on local machines, unlike the web-based Dashboard
- May have a steeper learning curve for users familiar with the simpler Dashboard interface
- Consumes more system resources as a standalone application
Code Comparison
Dashboard typically uses React for its frontend:
import React from 'react';
import { useTranslation } from 'react-i18next';
const DashboardComponent = () => {
const { t } = useTranslation();
return <h1>{t('dashboard.title')}</h1>;
};
Lens uses Electron and React for its desktop application:
import { app, BrowserWindow } from 'electron';
import * as path from 'path';
function createWindow() {
const win = new BrowserWindow({ width: 800, height: 600 });
win.loadFile(path.join(__dirname, 'index.html'));
}
Both projects use TypeScript and modern JavaScript frameworks, but Lens incorporates Electron for desktop functionality, while Dashboard focuses on web technologies for browser-based access.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Kubernetes Dashboard
Introduction
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.
As of version 7.0.0, we have dropped support for Manifest-based installation. Only Helm-based installation is supported now. Due to multi-container setup and hard dependency on Kong gateway API proxy it would not be feasible to easily support Manifest-based installation.
Additionally, we have changed the versioning scheme and dropped appVersion
from Helm chart. It is because, with a multi-container setup, every module is now versioned separately. Helm chart version
can be considered an app version now.
Installation
Kubernetes Dashboard supports only Helm-based installation currently as it is faster and gives us better control over all dependencies required by Dashboard to run. We now use a single-container, DBless Kong installation as a gateway that connects all our containers and exposes the UI. Users can then use any ingress controller or proxy in front of kong gateway. To find out more about ways to customize your installation check out helm chart values.
In order to install Kubernetes Dashboard simply run:
# Add kubernetes-dashboard repository
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
# Deploy a Helm Release named "kubernetes-dashboard" using the kubernetes-dashboard chart
helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
For more information about our Helm chart visit ArtifactHub.
Documentation
Dashboard documentation can be found in the docs directory which contains:
- Common: Entry-level overview.
- User Guide: Helpful information for users.
- How to access Dashboard - Everything you need to know to get access to you Kubernetes Dashboard instance after installation.
- Access Control: Find out how to control access to your Kubernetes Dashboard and create sample user that can be used to log in.
- Developer Guide: Important information for contributors that would like to test, run and work on Dashboard locally.
Community, discussion, contribution, and support
Learn how to engage with the Kubernetes community on the community page.
You can reach the maintainers of this project at:
Contribution
Learn how to start contributing to the Contributing Guideline.
Code of conduct
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.
License
Copyright 2019 The Kubernetes Dashboard Authors
Top Related Projects
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Complete container management platform
Making Docker and Kubernetes management easy.
Highly extensible platform for developers to better understand the complexity of Kubernetes clusters.
Lens - The way the world runs Kubernetes
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot