diff --git a/apps/base/shields/shields.yaml b/apps/base/shields/shields.yaml
index 580d41a92f442bea108c7e85d1e9bc4a7bf8aa49..234fccafec7032848ce1216c7fa85775cd4927cb 100644
--- a/apps/base/shields/shields.yaml
+++ b/apps/base/shields/shields.yaml
@@ -16,12 +16,15 @@ spec:
         app.kubernetes.io/name: shields
     spec:
       affinity:
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-            - labelSelector:
-                matchLabels:
-                  app.kubernetes.io/name: shields
-              topologyKey: kubernetes.io/hostname
+        topologySpreadConstraints:
+        - maxSkew: 1
+          topologyKey: kubernetes.io/hostname
+          whenUnsatisfiable: DoNotSchedule
+          labelSelector:
+            matchLabels:
+              app.kubernetes.io/name: shields
+          matchLabelKeys:
+            - pod-template-hash
       containers:
       - image: docker.io/shieldsio/shields:next
         name: shields