diff --git a/roles/kubernetes/master/tasks/post-upgrade.yml b/roles/kubernetes/master/tasks/post-upgrade.yml
index 07fc57b96daa979ac96596fbc02109f871b7e565..39164627286ad817761d35405cc5077c6d927e68 100644
--- a/roles/kubernetes/master/tasks/post-upgrade.yml
+++ b/roles/kubernetes/master/tasks/post-upgrade.yml
@@ -3,4 +3,5 @@
   command: "{{ bin_dir }}/etcdctl --endpoints={{ etcd_access_addresses }} rm -r /registry"
   environment:
     ETCDCTL_API: 2
+  delegate_to: "{{groups['etcd'][0]}}"
   when: kube_apiserver_storage_backend == "etcd3" and  needs_etcd_migration|bool|default(false)
diff --git a/roles/upgrade/pre-upgrade/tasks/main.yml b/roles/upgrade/pre-upgrade/tasks/main.yml
index e0e5ded8144d481620f6901b1ccf2278415f8daf..fbcd1cf857cd7a64f884599f002616d229478904 100644
--- a/roles/upgrade/pre-upgrade/tasks/main.yml
+++ b/roles/upgrade/pre-upgrade/tasks/main.yml
@@ -2,6 +2,7 @@
 - name: See if node is in ready state
   command: "kubectl get nodes | grep {{ inventory_hostname }}"
   register: kubectl_nodes
+  delegate_to: "{{ groups['kube-master'][0] }}"
   ignore_errors: true
 
 - set_fact: