diff --git a/infrastructure/kube-system/kustomization.yaml b/infrastructure/kube-system/kustomization.yaml
index 95b18c2b0239d0ad772851b0d62a1e038bf3ca58..5c2af85295aa1680cd3eb85a2f62e7a5f8b34bdd 100644
--- a/infrastructure/kube-system/kustomization.yaml
+++ b/infrastructure/kube-system/kustomization.yaml
@@ -5,3 +5,4 @@ resources:
   - poddisruptionbudget.yaml
   - quorum.yaml
   - descheduler.yaml
+  - metrics-server.yaml
diff --git a/infrastructure/kube-system/metrics-server.yaml b/infrastructure/kube-system/metrics-server.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..21be98d378aa6f425479f264f704314b5c26d762
--- /dev/null
+++ b/infrastructure/kube-system/metrics-server.yaml
@@ -0,0 +1,39 @@
+---
+apiVersion: source.toolkit.fluxcd.io/v1beta1
+kind: HelmRepository
+metadata:
+  name: metrics-server
+  namespace: kube-system
+spec:
+  interval: 30m
+  url: https://kubernetes-sigs.github.io/metrics-server/
+---
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+  name: metrics-server
+  namespace: kube-system
+spec:
+  releaseName: metrics-server
+  chart:
+    spec:
+      chart: metrics-server
+      sourceRef:
+        kind: HelmRepository
+        name: metrics-server
+        namespace: kube-system
+      version: 3.7.0
+  interval: 5m
+  values:
+    replicas: 2
+    rbac:
+      pspEnabled: true
+    podDisruptionBudget:
+      enabled: true
+      minAvailable: 1
+    resources:
+      requests:
+        memory: 128Mi
+        cpu: 100m
+      limits:
+        memory: 512Mi