diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml
index a5fa6edadfe2b150e2961f6a56981ba8409fcec9..b557324220b8f179101ddd1b479e68fb2e671609 100644
--- a/roles/download/defaults/main.yml
+++ b/roles/download/defaults/main.yml
@@ -447,9 +447,11 @@ haproxy_image_tag: 2.3
 
 # Coredns version should be supported by corefile-migration (or at least work with)
 # bundle with kubeadm; if not 'basic' upgrade can sometimes fail
-coredns_version: "1.7.0"
-coredns_image_repo: "{{ kube_image_repo }}/coredns"
-coredns_image_tag: "{{ coredns_version }}"
+coredns_image_is_namespaced: "{{ (kube_major_version | regex_replace('^v', '') | float) >= 1.21 }}"
+
+coredns_version: "v1.7.0"
+coredns_image_repo: "{{ kube_image_repo }}{{'/coredns/coredns' if (coredns_image_is_namespaced | bool) else '/coredns' }}"
+coredns_image_tag: "{{ coredns_version if (coredns_image_is_namespaced | bool) else (coredns_version | regex_replace('^v', '')) }}"
 
 nodelocaldns_version: "1.17.1"
 nodelocaldns_image_repo: "{{ kube_image_repo }}/dns/k8s-dns-node-cache"
diff --git a/roles/download/templates/kubeadm-images.yaml.j2 b/roles/download/templates/kubeadm-images.yaml.j2
index eb9a41f14d1ed5eafc1e83b1a01996436ae5e2a0..7cca0e05828efab9dc4397ef94844c814b7d0fe6 100644
--- a/roles/download/templates/kubeadm-images.yaml.j2
+++ b/roles/download/templates/kubeadm-images.yaml.j2
@@ -21,5 +21,5 @@ etcd:
 {% endif %}
 dns:
   type: CoreDNS
-  imageRepository: {{ coredns_image_repo | regex_replace('/coredns$','') }}
+  imageRepository: {{ coredns_image_repo | regex_replace('/coredns.*$','') }}
   imageTag: {{ coredns_image_tag }}
diff --git a/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta2.yaml.j2 b/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta2.yaml.j2
index 11c3e714b99ca99d24dea5dd164bf09c8fac3315..33e34c6c9bba9d7f676d4c802c1735a191ded20f 100644
--- a/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta2.yaml.j2
+++ b/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta2.yaml.j2
@@ -84,7 +84,7 @@ etcd:
 {% endif %}
 dns:
   type: CoreDNS
-  imageRepository: {{ coredns_image_repo | regex_replace('/coredns$','') }}
+  imageRepository: {{ coredns_image_repo | regex_replace('/coredns.*$','') }}
   imageTag: {{ coredns_image_tag }}
 networking:
   dnsDomain: {{ dns_domain }}