diff --git a/roles/kubernetes-apps/metrics_server/defaults/main.yml b/roles/kubernetes-apps/metrics_server/defaults/main.yml
index 548cf0ee826d120396ada509420e52e2b1443c50..993eed6c1eaff6bc250b52ef51f4bd928781f514 100644
--- a/roles/kubernetes-apps/metrics_server/defaults/main.yml
+++ b/roles/kubernetes-apps/metrics_server/defaults/main.yml
@@ -9,3 +9,6 @@ metrics_server_requests_cpu: 100m
 metrics_server_requests_memory: 200Mi
 metrics_server_host_network: false
 metrics_server_replicas: 1
+# metrics_server_extra_tolerations: []
+# metrics_server_extra_affinity: {}
+# metrics_server_nodeselector: {}
diff --git a/roles/kubernetes-apps/metrics_server/templates/metrics-server-deployment.yaml.j2 b/roles/kubernetes-apps/metrics_server/templates/metrics-server-deployment.yaml.j2
index d44dc8f5e43c6d813042c18e3062705e80f30c29..686cde0fc234b289b7b3a3acb472b04180e5b606 100644
--- a/roles/kubernetes-apps/metrics_server/templates/metrics-server-deployment.yaml.j2
+++ b/roles/kubernetes-apps/metrics_server/templates/metrics-server-deployment.yaml.j2
@@ -84,12 +84,17 @@ spec:
       volumes:
         - name: tmp
           emptyDir: {}
-{% if not masters_are_not_tainted %}
+{% if not masters_are_not_tainted or metrics_server_extra_tolerations is defined %}
       tolerations:
+{% if not masters_are_not_tainted %}
         - key: node-role.kubernetes.io/master
           effect: NoSchedule
         - key: node-role.kubernetes.io/control-plane
           effect: NoSchedule
+{% endif %}
+{% if metrics_server_extra_tolerations is defined %}
+        {{ metrics_server_extra_tolerations | list | to_nice_yaml(indent=2) | indent(8) }}
+{% endif %}
 {% endif %}
       affinity:
         podAntiAffinity:
@@ -105,3 +110,10 @@ spec:
               topologyKey: kubernetes.io/hostname
               namespaces:
               - kube-system
+{% if metrics_server_extra_affinity is defined %}
+        {{ metrics_server_extra_affinity | to_nice_yaml | indent(width=8) }}
+{% endif %}
+{% if metrics_server_nodeselector is defined %}
+      nodeSelector:
+        {{ metrics_server_nodeselector | to_nice_yaml | indent(width=8) }}
+{% endif %}