diff --git a/README.md b/README.md
index 7b6be3ba954bf2eea3ec08fb9a159bd5e41f7ed1..cb9714e6a71d5a5215489ad9160b0be3abbbf2d0 100644
--- a/README.md
+++ b/README.md
@@ -130,7 +130,7 @@ Note: Upstart/SysV init based OS types are not supported.
 ## Supported Components
 
 - Core
-  - [kubernetes](https://github.com/kubernetes/kubernetes) v1.21.5
+  - [kubernetes](https://github.com/kubernetes/kubernetes) v1.22.2
   - [etcd](https://github.com/coreos/etcd) v3.4.13
   - [docker](https://www.docker.com/) v20.10 (see note)
   - [containerd](https://containerd.io/) v1.4.9
diff --git a/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml b/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml
index 1edd5f502a30bc82922165c565815e3a725351bc..e2c5d5fc2257c6d6c9efb1a7c0084e66b341519c 100644
--- a/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml
+++ b/inventory/sample/group_vars/k8s_cluster/k8s-cluster.yml
@@ -17,7 +17,7 @@ kube_token_dir: "{{ kube_config_dir }}/tokens"
 kube_api_anonymous_auth: true
 
 ## Change this to use another Kubernetes version, e.g. a current beta release
-kube_version: v1.21.5
+kube_version: v1.22.2
 
 # Where the binaries will be downloaded.
 # Note: ensure that you've enough disk space (about 1G)
diff --git a/roles/container-engine/cri-o/defaults/main.yml b/roles/container-engine/cri-o/defaults/main.yml
index 5f53aa6f9809500017bfa6238d37cf20c6bb94eb..e97dee0c177b68353ab1285fd4637e863391c01f 100644
--- a/roles/container-engine/cri-o/defaults/main.yml
+++ b/roles/container-engine/cri-o/defaults/main.yml
@@ -45,11 +45,12 @@ crio_stream_port: "10010"
 crio_required_version: "{{ kube_version | regex_replace('^v(?P<major>\\d+).(?P<minor>\\d+).(?P<patch>\\d+)$', '\\g<major>.\\g<minor>') }}"
 
 crio_kubernetes_version_matrix:
+  "1.22": "1.21"
   "1.21": "1.21"
   "1.20": "1.20"
   "1.19": "1.19"
 
-crio_version: "{{ crio_kubernetes_version_matrix[crio_required_version] | default('1.21') }}"
+crio_version: "{{ crio_kubernetes_version_matrix[crio_required_version] | default('1.22') }}"
 
 # The crio_runtimes variable defines a list of OCI compatible runtimes.
 crio_runtimes:
diff --git a/roles/kubespray-defaults/defaults/main.yaml b/roles/kubespray-defaults/defaults/main.yaml
index 0205e3c51bb8c285b290533fc2c2782b34d64b82..41273d9a5fcdc8ef23a1492757fe7cc8623e5158 100644
--- a/roles/kubespray-defaults/defaults/main.yaml
+++ b/roles/kubespray-defaults/defaults/main.yaml
@@ -15,7 +15,7 @@ is_fedora_coreos: false
 disable_swap: true
 
 ## Change this to use another Kubernetes version, e.g. a current beta release
-kube_version: v1.21.5
+kube_version: v1.22.2
 
 ## The minimum version working
 kube_version_min_required: v1.19.0