diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml
index 2527abd69bb5a41d9b85125b1522fc5954ea5fe9..927b4630312b8d7c1d135a6d913a7f8ce8951bb2 100644
--- a/roles/kubernetes/node/defaults/main.yml
+++ b/roles/kubernetes/node/defaults/main.yml
@@ -57,3 +57,6 @@ kubelet_custom_flags: []
 ## Empty vaule for quay.io containers
 ## docker for docker registry containers
 kube_hyperkube_image_repo: ""
+
+# If non-empty, will use this string as identification instead of the actual hostname
+kube_override_hostname: "{{ ansible_hostname }}"
diff --git a/roles/kubernetes/node/templates/kubelet.j2 b/roles/kubernetes/node/templates/kubelet.j2
index e858022e2074a8c0de984b29093f740529cfc0ca..822153f393c4b00ec8d5fff8ae99bb9d8c5b4377 100644
--- a/roles/kubernetes/node/templates/kubelet.j2
+++ b/roles/kubernetes/node/templates/kubelet.j2
@@ -6,8 +6,9 @@ KUBELET_ADDRESS="--address={{ ip | default("0.0.0.0") }}"
 # The port for the info server to serve on
 # KUBELET_PORT="--port=10250"
 # You may leave this blank to use the actual hostname
-KUBELET_HOSTNAME="--hostname-override={{ ansible_hostname }}"
-
+{% if kube_override_hostname %}
+KUBELET_HOSTNAME="--hostname-override={{ kube_override_hostname }}"
+{% endif %}
 {# Base kubelet args #}
 {% set kubelet_args_base %}--pod-manifest-path={{ kube_manifest_dir }} \
 --pod-infra-container-image={{ pod_infra_image_repo }}:{{ pod_infra_image_tag }} \