diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml
index 4e34dcc9942f3263a2d7e97d8f9ddf636ba7a861..e6156c47f8a90546b2aa55850fbf0941bc578a39 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 8c0ea94b50f79e5fc0f90fb4224ead536a871e19..40de92e0dbf3ff39cc3ccffe28596db320b3d92e 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 }} \