diff --git a/roles/kubernetes/preinstall/defaults/main.yml b/roles/kubernetes/preinstall/defaults/main.yml
index e06485101236bb6711a8ec26db94ccc841b527c6..5537b52b870e1f4907e5298523cefb446f4faeb4 100644
--- a/roles/kubernetes/preinstall/defaults/main.yml
+++ b/roles/kubernetes/preinstall/defaults/main.yml
@@ -36,6 +36,8 @@ resolveconf_cloud_init_conf: /etc/resolveconf_cloud_init.conf
 
 # All inventory hostnames will be written into each /etc/hosts file.
 populate_inventory_to_hosts_file: true
+# K8S Api FQDN will be written into /etc/hosts file.
+populate_loadbalancer_apiserver_to_hosts_file: true
 
 sysctl_file_path: "/etc/sysctl.d/99-sysctl.conf"
 
diff --git a/roles/kubernetes/preinstall/tasks/0090-etchosts.yml b/roles/kubernetes/preinstall/tasks/0090-etchosts.yml
index 693e31f545a492843fecbb5cc37a75e439d6d3ff..ae4ffadd621b6e1b1d73894f140fdf196c159fb6 100644
--- a/roles/kubernetes/preinstall/tasks/0090-etchosts.yml
+++ b/roles/kubernetes/preinstall/tasks/0090-etchosts.yml
@@ -35,6 +35,7 @@
     backup: yes
     unsafe_writes: yes
   when:
+    - populate_loadbalancer_apiserver_to_hosts_file
     - loadbalancer_apiserver is defined
     - loadbalancer_apiserver.address is defined