diff --git a/docs/ansible.md b/docs/ansible.md
index 09d6bdd3480e5edb8e1679d92d463e8dd878da78..848862ff5aa7006e0e7c0976491228ce44f34d97 100644
--- a/docs/ansible.md
+++ b/docs/ansible.md
@@ -116,7 +116,6 @@ The following tags are defined in playbooks:
 |                    facts | Gathering facts and misc check results
 |                  flannel | Network plugin flannel
 |                      gce | Cloud-provider GCP
-|                hyperkube | Manipulations with K8s hyperkube image
 |          k8s-pre-upgrade | Upgrading K8s cluster
 |              k8s-secrets | Configuring K8s certs/keys
 |           kube-apiserver | Configuring static pod kube-apiserver
diff --git a/docs/vars.md b/docs/vars.md
index dbcf98713f3d6839ee19faf46a1ec3d15f2f43a7..fef59728c0789f5cabc339bfea7817d3a601ff07 100644
--- a/docs/vars.md
+++ b/docs/vars.md
@@ -22,7 +22,7 @@ Some variables of note include:
 * *ipip* - Enables Calico ipip encapsulation by default
 * *kube_network_plugin* - Sets k8s network plugin (default Calico)
 * *kube_proxy_mode* - Changes k8s proxy mode to iptables mode
-* *kube_version* - Specify a given Kubernetes hyperkube version
+* *kube_version* - Specify a given Kubernetes version
 * *searchdomains* - Array of DNS domains to search when looking up hostnames
 * *nameservers* - Array of nameservers to use for DNS lookup
 * *preinstall_selinux_state* - Set selinux state, permitted values are permissive and disabled.
diff --git a/roles/download/templates/kubeadm-images.yaml.j2 b/roles/download/templates/kubeadm-images.yaml.j2
index 5ffb7febfc773c94e97504ba2436f0d213eaddf6..eb9a41f14d1ed5eafc1e83b1a01996436ae5e2a0 100644
--- a/roles/download/templates/kubeadm-images.yaml.j2
+++ b/roles/download/templates/kubeadm-images.yaml.j2
@@ -7,7 +7,6 @@ apiVersion: kubeadm.k8s.io/v1beta2
 kind: ClusterConfiguration
 imageRepository: {{ kube_image_repo }}
 kubernetesVersion: {{ kube_version }}
-useHyperKubeImage: {{ kubeadm_use_hyperkube_image }}
 etcd:
 {% if etcd_kubeadm_enabled %}
   local:
diff --git a/roles/kubernetes/master/templates/kubeadm-config.v1beta2.yaml.j2 b/roles/kubernetes/master/templates/kubeadm-config.v1beta2.yaml.j2
index 8c3041d7971562845e2cda64e0364498c0d22779..31e398bb9429d147856eca245af206097de2b7f9 100644
--- a/roles/kubernetes/master/templates/kubeadm-config.v1beta2.yaml.j2
+++ b/roles/kubernetes/master/templates/kubeadm-config.v1beta2.yaml.j2
@@ -98,7 +98,6 @@ controlPlaneEndpoint: {{ ip | default(fallback_ips[inventory_hostname]) }}:{{ ku
 {% endif %}
 certificatesDir: {{ kube_cert_dir }}
 imageRepository: {{ kube_image_repo }}
-useHyperKubeImage: {{ kubeadm_use_hyperkube_image }}
 apiServer:
   extraArgs:
 {% if kube_api_anonymous_auth is defined %}
diff --git a/roles/kubespray-defaults/defaults/main.yaml b/roles/kubespray-defaults/defaults/main.yaml
index c5809b9bb1abb6d3de3d01ed23c54c8a07d53d57..262eddd9ecb797ab7b8c57d1858769aa2b05371c 100644
--- a/roles/kubespray-defaults/defaults/main.yaml
+++ b/roles/kubespray-defaults/defaults/main.yaml
@@ -20,9 +20,6 @@ kube_version: v1.19.3
 ## The minimum version working
 kube_version_min_required: v1.17.0
 
-# use HyperKube image to control plane containers
-kubeadm_use_hyperkube_image: False
-
 ## Kube Proxy mode One of ['iptables','ipvs']
 kube_proxy_mode: ipvs
 
diff --git a/roles/reset/tasks/main.yml b/roles/reset/tasks/main.yml
index fe6089a3cd4e4a9e2b03342c24d135f434a231c9..69ce724748babdcbcbf758da50016916dfa75fef 100644
--- a/roles/reset/tasks/main.yml
+++ b/roles/reset/tasks/main.yml
@@ -251,7 +251,6 @@
     - "{{ bin_dir }}/kubernetes-scripts"
     - "{{ bin_dir }}/kubectl"
     - "{{ bin_dir }}/kubeadm"
-    - "{{ bin_dir }}/hyperkube"
     - "{{ bin_dir }}/helm"
     - "{{ bin_dir }}/calicoctl"
     - "{{ bin_dir }}/calicoctl.sh"