Skip to content

Commit e5c4414

Browse files
authored
Merge pull request #52307 from illume/headlamp-plugin
Add 2025-09-23-headlamp-karpenter-plugin blog
2 parents 924d749 + 4e295a7 commit e5c4414

File tree

12 files changed

+90
-0
lines changed

12 files changed

+90
-0
lines changed
138 KB
Loading
158 KB
Loading
168 KB
Loading
159 KB
Loading
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
---
2+
layout: blog
3+
title: "Introducing Headlamp Plugin for Karpenter - Scaling and Visibility"
4+
date: draft
5+
slug: introducing-headlamp-plugin-for-karpenter
6+
Author: >
7+
[René Dudfield](https://github.com/illume) (Microsoft),
8+
[Anirban Singha](https://github.com/SinghaAnirban005) (independent)
9+
---
10+
11+
12+
Headlamp is an open‑source, extensible Kubernetes SIG UI project designed to let you explore, manage, and debug cluster resources.
13+
14+
Karpenter is a Kubernetes Autoscaling SIG node provisioning project that helps clusters scale quickly and efficiently. It launches new nodes in seconds, selects appropriate instance types for workloads, and manages the full node lifecycle, including scale-down.
15+
16+
The new Headlamp Karpenter Plugin adds real-time visibility into Karpenter’s activity directly from the Headlamp UI. It shows how Karpenter resources relate to Kubernetes objects, displays live metrics, and surfaces scaling events as they happen. You can inspect pending pods during provisioning, review scaling decisions, and edit Karpenter-managed resources with built-in validation. The Karpenter plugin was made as part of a LFX mentor project.
17+
18+
The Karpenter plugin for Headlamp aims to make it easier for Kubernetes users and operators to understand, debug, and fine-tune autoscaling behavior in their clusters. Now we will give a brief tour of the Headlamp plugin.
19+
20+
21+
## Map view of Karpenter Resources and how they relate to Kubernetes resources
22+
23+
Easily see how Karpenter Resources like NodeClasses, NodePool and NodeClaims connect with core Kubernetes resources like Pods, Nodes etc.
24+
25+
![Map view showing relationships between resources](./mini-map-view.png)
26+
27+
28+
## Visualization of Karpenter Metrics
29+
30+
Get instant insights of Resource Usage v/s Limits, Allowed disruptions, Pending Pods, Provisioning Latency and many more .
31+
32+
![NodePool default metrics shown with controls to see different frequencies](./chart-1.png)
33+
34+
![NodeClaim default metrics shown with controls to see different frequencies](./chart-2.png)
35+
36+
## Scaling decisions
37+
38+
Shows which instances are being provisioned for your workloads and understand the reason behind why Karpenter made those choices. Helpful while debugging.
39+
40+
![Pod Placement Decisions data including reason, from, pod, message, and age](./pod-decisions.png)
41+
42+
![Node decision data including Type, Reason, Node, From, Message](./node-decisions.png)
43+
44+
45+
## Config editor with validation support
46+
47+
Make live edits to Karpenter configurations. The editor includes diff previews and resource validation for safer adjustments.
48+
![Config editor with validation support](./config-editor.png)
49+
50+
## Real time view of Karpenter resources
51+
52+
View and track Karpenter specific resources in real time such as “NodeClaims” as your cluster scales up and down.
53+
54+
![Node claims data including Name, Status, Instance Type, CPU, Zone, Age, and Actions](./node-claims.png)
55+
56+
![Node Pools data including Name, NodeClass, CPU, Memory, Nodes, Status, Age, Actions](./nodepools.png)
57+
58+
![EC2 Node Classes data including Name, Cluster, Instance Profile, Status, IAM Role, Age, and Actions](./nodeclass.png)
59+
60+
## Dashboard for Pending Pods
61+
62+
View all pending pods with unmet scheduling requirements/Failed Scheduling highlighting why they couldn't be scheduled.
63+
64+
![Pending Pods data including Name, Namespace, Type, Reason, From, and Message](./pending-pods.png)
65+
66+
67+
### **Karpenter Providers**
68+
69+
This plugin should work with most Karpenter providers, but has only so far been tested on the ones listed in the table. Additionally, each provider gives some extra information, and the ones in the table below are displayed by the plugin.
70+
71+
| Provider Name | Tested | Extra provider specific info supported |
72+
| ----- | ----- | ----- |
73+
| [AWS](https://github.com/aws/karpenter-provider-aws) |||
74+
| [Azure](https://github.com/Azure/karpenter-provider-azure) |||
75+
| [AlibabaCloud](https://github.com/cloudpilot-ai/karpenter-provider-alibabacloud) |||
76+
| [Bizfly Cloud](https://github.com/bizflycloud/karpenter-provider-bizflycloud) |||
77+
| [Cluster API](https://github.com/kubernetes-sigs/karpenter-provider-cluster-api) |||
78+
| [GCP](https://github.com/cloudpilot-ai/karpenter-provider-gcp) |||
79+
| [Proxmox](https://github.com/sergelogvinov/karpenter-provider-proxmox) |||
80+
| [Oracle Cloud Infrastructure (OCI)](https://github.com/zoom/karpenter-oci) |||
81+
82+
Please [submit an issue](https://github.com/headlamp-k8s/plugins/issues) if you test one of the untested providers or if you want support for this provider (PRs also gladly accepted).
83+
84+
## How to use
85+
86+
Please see the [plugins/karpenter/README.md](https://github.com/headlamp-k8s/plugins/tree/main/karpenter) for instructions on how to use.
87+
88+
## Feedback and Questions
89+
90+
Please [submit an issue](https://github.com/headlamp-k8s/plugins/issues) if you use Karpenter and have any other ideas or feedback. Or come to the [Kubernetes slack headlamp channel](https://kubernetes.slack.com/?redir=%2Fmessages%2Fheadlamp) for a chat.
17.5 KB
Loading
24.4 KB
Loading
40.2 KB
Loading
37.7 KB
Loading
20.5 KB
Loading

0 commit comments

Comments
 (0)