diff --git a/roles/kubernetes/master/defaults/main.yml b/roles/kubernetes/master/defaults/main.yml
index 6b22bfd05613f8844e373904a98afa8bb8475d4d..64a71fc22c912c72d293c712bf2c082d51674ff1 100644
--- a/roles/kubernetes/master/defaults/main.yml
+++ b/roles/kubernetes/master/defaults/main.yml
@@ -83,6 +83,7 @@ controller_mgr_custom_flags: []
 scheduler_custom_flags: []
 
 ## Extra args for k8s components passing by kubeadm
+kube_kubeadm_apiserver_extra_args: {}
 kube_kubeadm_controller_extra_args: {}
 kube_kubeadm_scheduler_extra_args: {}
 
diff --git a/roles/kubernetes/master/templates/kubeadm-config.yaml.j2 b/roles/kubernetes/master/templates/kubeadm-config.yaml.j2
index 1f243e54468aa18258f8135960ca797e20a1cef9..ed1cc7add3669d3279aaed7972776a56223bf716 100644
--- a/roles/kubernetes/master/templates/kubeadm-config.yaml.j2
+++ b/roles/kubernetes/master/templates/kubeadm-config.yaml.j2
@@ -58,6 +58,9 @@ apiServerExtraArgs:
   runtime-config: {{ kube_api_runtime_config | join(',') }}
 {% endif %}
   allow-privileged: "true"
+{% for key in kube_kubeadm_apiserver_extra_args %}
+  {{ key }}: {{ kube_kubeadm_apiserver_extra_args[key] }}
+{% endfor %}
 controllerManagerExtraArgs:
   node-monitor-grace-period: {{ kube_controller_node_monitor_grace_period }}
   node-monitor-period: {{ kube_controller_node_monitor_period }}
diff --git a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2
index f8e33de146c1d88893b17f60a2ace696428a886e..a6f76c6d64c7c4098deb42f515d498463109a198 100644
--- a/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2
+++ b/roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2
@@ -115,9 +115,9 @@ spec:
 {% if apiserver_custom_flags is string %}
     - {{ apiserver_custom_flags }}
 {% else %}
-{%   for flag in apiserver_custom_flags %}
+{% for flag in apiserver_custom_flags %}
     - {{ flag }}
-{%   endfor %}
+{% endfor %}
 {% endif %}
     livenessProbe:
       httpGet: