Metrics Server

Kubernetes Metrics Server — required for kubectl top, HPA, and Headlamp resource views.

Metrics Server serves the Kubernetes Metrics API (metrics.k8s.io) by scraping CPU and memory from the kubelets. It keeps only the latest data point and stores no history — anything historical comes from VictoriaMetrics instead.

Without it, kubectl top returns error: Metrics API not available, Headlamp shows no resource usage, and any HPA or VPA has nothing to scale on.

It is deployed as a CDK8s chart into kube-system with two flags that Talos specifically requires:

FlagWhy
--kubelet-insecure-tlsTalos kubelets serve self-signed certificates, which the default config rejects
--kubelet-preferred-address-types=InternalIPNode hostnames do not resolve in-cluster

Source: workloads/monitoring/metrics_server.go

# Verify Metrics Server is running
kubectl get deployment metrics-server -n kube-system

# Test it works
kubectl top nodes
kubectl top pods -A

Relationship to Observability Stack

Metrics Server and VictoriaMetrics serve different purposes and are complementary:

Metrics ServerVictoriaMetrics
Data retentionLast value only30 days
Scrape interval60s30s
Use casekubectl top, HPAGrafana, alerting, trending
StorageIn-memoryLonghorn PVC (100 Gi)
ProtocolKubernetes Metrics APIPrometheus remote-write