diff --git a/cluster-autoscaler/utils/utils.go b/cluster-autoscaler/utils/utils.go
index cfd9231e44199d9d52a7e6b2bd6df97b27a9ae67..70444651e8e2b05ff2ab43619e623c00cb98b751 100644
--- a/cluster-autoscaler/utils/utils.go
+++ b/cluster-autoscaler/utils/utils.go
@@ -62,14 +62,18 @@ func FilterOutNodes(nodes []*apiv1.Node, nodesToFilterOut []*apiv1.Node) []*apiv
 // an equivalence group per pod which is undesirable.
 // Projected volumes do not impact scheduling so we should ignore them
 func PodSpecSemanticallyEqual(p1 apiv1.PodSpec, p2 apiv1.PodSpec) bool {
-	p1Spec := sanitizeProjectedVolumesAndMounts(p1)
-	p2Spec := sanitizeProjectedVolumesAndMounts(p2)
+	p1Spec := sanitizePodSpec(p1)
+	p2Spec := sanitizePodSpec(p2)
 	return apiequality.Semantic.DeepEqual(p1Spec, p2Spec)
 }
 
-// sanitizeProjectedVolumesAndMounts returns a pod spec with projected volumes
-// and their mounts removed
-func sanitizeProjectedVolumesAndMounts(podSpec apiv1.PodSpec) apiv1.PodSpec {
+func sanitizePodSpec(podSpec apiv1.PodSpec) apiv1.PodSpec {
+	dropProjectedVolumesAndMounts(&podSpec)
+	dropHostname(&podSpec)
+	return podSpec
+}
+
+func dropProjectedVolumesAndMounts(podSpec *apiv1.PodSpec) {
 	projectedVolumeNames := map[string]bool{}
 	var volumes []apiv1.Volume
 	for _, v := range podSpec.Volumes {
@@ -90,5 +94,8 @@ func sanitizeProjectedVolumesAndMounts(podSpec apiv1.PodSpec) apiv1.PodSpec {
 		}
 		podSpec.Containers[i].VolumeMounts = volumeMounts
 	}
-	return podSpec
+}
+
+func dropHostname(podSpec *apiv1.PodSpec) {
+	podSpec.Hostname = ""
 }
diff --git a/cluster-autoscaler/utils/utils_test.go b/cluster-autoscaler/utils/utils_test.go
index 744c7ee9cdb1f55803f5be34973f1163d8909b0e..b90fa4f64b9b22d355dd33e600774a0d703237f6 100644
--- a/cluster-autoscaler/utils/utils_test.go
+++ b/cluster-autoscaler/utils/utils_test.go
@@ -73,6 +73,16 @@ func TestPodSpecSemanticallyEqual(t *testing.T) {
 				},
 			},
 		},
+		{
+			name: "two pods with different hostnames",
+			p1Spec: apiv1.PodSpec{
+				Hostname: "foo",
+			},
+			p2Spec: apiv1.PodSpec{
+				Hostname: "bar",
+			},
+			result: true,
+		},
 	}
 
 	for _, tt := range tests {
@@ -83,7 +93,7 @@ func TestPodSpecSemanticallyEqual(t *testing.T) {
 	}
 }
 
-func TestSanitizeProjectedVolumesAndMounts(t *testing.T) {
+func TestSanitizePodSpec(t *testing.T) {
 	projectedSAVol := test.BuildServiceTokenProjectedVolumeSource("path")
 
 	tests := []struct {
@@ -170,7 +180,7 @@ func TestSanitizeProjectedVolumesAndMounts(t *testing.T) {
 
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-			got := sanitizeProjectedVolumesAndMounts(tt.inputPodSpec)
+			got := sanitizePodSpec(tt.inputPodSpec)
 			assert.True(t, assert.ObjectsAreEqualValues(tt.outputPodSpec, got), "\ngot: %#v\nwant: %#v", got, tt.outputPodSpec)
 		})
 	}