diff --git a/README.md b/README.md
index 518c3052e05d2eada150c5d859cf61f501d22777..abd1548abe556b838809e76fc670d9e91339d214 100644
--- a/README.md
+++ b/README.md
@@ -54,7 +54,7 @@ Versions of supported components
 --------------------------------
 
 
-[kubernetes](https://github.com/kubernetes/kubernetes/releases) v1.8.3 <br>
+[kubernetes](https://github.com/kubernetes/kubernetes/releases) v1.8.4 <br>
 [etcd](https://github.com/coreos/etcd/releases) v3.2.4 <br>
 [flanneld](https://github.com/coreos/flannel/releases) v0.8.0 <br>
 [calico](https://docs.projectcalico.org/v2.5/releases/) v2.5.0 <br>
diff --git a/inventory/group_vars/k8s-cluster.yml b/inventory/group_vars/k8s-cluster.yml
index 034b86488948d38026a8ad532df40794a514b8a6..fb29622befc28c3bb17cdd97b1264c604ac0f6b6 100644
--- a/inventory/group_vars/k8s-cluster.yml
+++ b/inventory/group_vars/k8s-cluster.yml
@@ -23,7 +23,7 @@ kube_users_dir: "{{ kube_config_dir }}/users"
 kube_api_anonymous_auth: false
 
 ## Change this to use another Kubernetes version, e.g. a current beta release
-kube_version: v1.8.3
+kube_version: v1.8.4
 
 # Where the binaries will be downloaded.
 # Note: ensure that you've enough disk space (about 1G)
diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml
index 8235485ce611191d77ae9dbb548790a6e9ecf73a..b642a88010f5f69b7dd1bdc469d6f4875ff7cf87 100644
--- a/roles/download/defaults/main.yml
+++ b/roles/download/defaults/main.yml
@@ -24,7 +24,7 @@ download_always_pull: False
 download_delegate: "{% if download_localhost %}localhost{% else %}{{groups['kube-master'][0]}}{% endif %}"
 
 # Versions
-kube_version: v1.8.3
+kube_version: v1.8.4
 kubeadm_version: "{{ kube_version }}"
 etcd_version: v3.2.4
 # TODO(mattymo): Move calico versions to roles/network_plugins/calico/defaults
@@ -44,7 +44,7 @@ contiv_version: 1.1.7
 kubeadm_download_url: "https://storage.googleapis.com/kubernetes-release/release/{{ kubeadm_version }}/bin/linux/amd64/kubeadm"
 
 # Checksums
-kubeadm_checksum: "ea1c53b88e6e562c9c0ae4f523b56fa7f83850c4894f619a24c069e0130f417d"
+kubeadm_checksum: "08c93bb83c1af8703d49027b863fee08721cb96900f8d70d4d45b50dd1e5bc2c"
 
 istio_version: "0.2.6"
 
diff --git a/roles/kubespray-defaults/defaults/main.yaml b/roles/kubespray-defaults/defaults/main.yaml
index 5e8fecd4ad34349f28a7417304849177afc5a3af..ec928b298bb61e479b021f7464e91360c75ba12e 100644
--- a/roles/kubespray-defaults/defaults/main.yaml
+++ b/roles/kubespray-defaults/defaults/main.yaml
@@ -13,7 +13,7 @@ kube_api_anonymous_auth: false
 is_atomic: false
 
 ## Change this to use another Kubernetes version, e.g. a current beta release
-kube_version: v1.8.3
+kube_version: v1.8.4
 
 # Set to true to allow pre-checks to fail and continue deployment
 ignore_assert_errors: false