Convert Figma logo to code with AI

kubernetes logodashboard

General-purpose web UI for Kubernetes clusters

14,267
4,138
14,267
151

Top Related Projects

63,808

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.

23,337

Complete container management platform

30,364

Making Docker and Kubernetes management easy.

6,280

Highly extensible platform for developers to better understand the complexity of Kubernetes clusters.

22,461

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:

  1. Apply the dashboard manifest:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
    
  2. 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
    
  3. Apply the user configuration:

    kubectl apply -f admin-user.yaml
    
  4. Get the token for the admin user:

    kubectl -n kubernetes-dashboard create token admin-user
    
  5. Start the kubectl proxy:

    kubectl proxy
    
  6. 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

63,808

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.

23,337

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.

30,364

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.

6,280

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.

22,461

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Kubernetes Dashboard

Go Report Card Coverage Status License

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.

Dashboard UI workloads page

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

Apache License 2.0


Copyright 2019 The Kubernetes Dashboard Authors