diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml
index 9d21d50147c76f287a80f529ae3e396730dd04a7..fb9fdf32985303a080c299af76014ccfa87c315c 100644
--- a/roles/kubernetes/node/defaults/main.yml
+++ b/roles/kubernetes/node/defaults/main.yml
@@ -248,3 +248,7 @@ kube_proxy_ipvs_modules:
   - ip_vs_sh
   - ip_vs_wlc
   - ip_vs_lc
+
+# Ensure IPVS required kernel module is picked based on Linux Kernel version
+# in reference to: https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/ipvs/README.md#run-kube-proxy-in-ipvs-mode
+conntrack_module: "{{ ansible_kernel is version_compare('4.19', '>=') | ternary('nf_conntrack', 'nf_conntrack_ipv4') }}"
diff --git a/roles/kubernetes/node/tasks/main.yml b/roles/kubernetes/node/tasks/main.yml
index 7eb5b2e597d60c6379cc69a0b4a1af5d51272e6b..6af9c776f9ccbfae115f7829a92acca03e8de29d 100644
--- a/roles/kubernetes/node/tasks/main.yml
+++ b/roles/kubernetes/node/tasks/main.yml
@@ -117,21 +117,21 @@
   tags:
     - kube-proxy
 
-- name: Modprobe nf_conntrack_ipv4
+- name: "Modprobe {{ conntrack_module }}"
   community.general.modprobe:
-    name: nf_conntrack_ipv4
+    name: "{{ conntrack_module }}"
     state: present
-  register: modprobe_nf_conntrack_ipv4
+  register: modprobe_conntrack_module
   ignore_errors: true  # noqa ignore-errors
   when:
     - kube_proxy_mode == 'ipvs'
   tags:
     - kube-proxy
 
-- name: Add nf_conntrack_ipv4 kube-proxy ipvs module list
+- name: "Add {{ conntrack_module }} kube-proxy ipvs module list"
   set_fact:
-    kube_proxy_ipvs_modules: "{{ kube_proxy_ipvs_modules + ['nf_conntrack_ipv4'] }}"
-  when: modprobe_nf_conntrack_ipv4 is success
+    kube_proxy_ipvs_modules: "{{ kube_proxy_ipvs_modules + [conntrack_module] }}"
+  when: modprobe_conntrack_module is success
   tags:
     - kube-proxy