diff --git a/cmd/kubeadm/app/phases/controlplane/manifests.go b/cmd/kubeadm/app/phases/controlplane/manifests.go
index <HASH>..<HASH> 100644
--- a/cmd/kubeadm/app/phases/controlplane/manifests.go
+++ b/cmd/kubeadm/app/phases/controlplane/manifests.go
@@ -187,7 +187,7 @@ func getAPIServerCommand(cfg *kubeadmapi.InitConfiguration) []string {
 
 		// Apply user configurations for local etcd
 		if cfg.Etcd.Local != nil {
-			if value, ok := cfg.Etcd.Local.ExtraArgs["listen-client-urls"]; ok {
+			if value, ok := cfg.Etcd.Local.ExtraArgs["advertise-client-urls"]; ok {
 				defaultArguments["etcd-servers"] = value
 			}
 		}
use etcd endpoint from advertise-client-urls

It makes more sense to use advertised etcd endpoints instead of using
listened client URLS.

I'm solving this use case: Listen on localhost and public IP but I don't
want to add multiple endpoints to kube-apiservers because it's targeting
same etcd server.