diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh old mode 100644 new mode 100755 index 5d1271d166a..7a938eafb5b --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -1753,24 +1753,29 @@ function prepare-kube-proxy-manifest-variables { if [[ -n "${FEATURE_GATES:-}" ]]; then params+=" --feature-gates=${FEATURE_GATES}" fi - if [[ "${KUBE_PROXY_MODE:-}" == "ipvs" ]];then - # use 'nf_conntrack' instead of 'nf_conntrack_ipv4' for linux kernel >= 4.19 - # https://github.com/kubernetes/kubernetes/pull/70398 - local -r kernel_version=$(uname -r | cut -d\. -f1,2) - local conntrack_module="nf_conntrack" - if [[ $(printf '%s\n4.18\n' "${kernel_version}" | sort -V | tail -1) == "4.18" ]]; then - conntrack_module="nf_conntrack_ipv4" - fi - if sudo modprobe -a ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh ${conntrack_module}; then - params+=" --proxy-mode=ipvs" - else - # If IPVS modules are not present, make sure the node does not come up as - # healthy. - exit 1 - fi - fi - params+=" --iptables-sync-period=1m --iptables-min-sync-period=10s --ipvs-sync-period=1m --ipvs-min-sync-period=10s" + case "${KUBE_PROXY_MODE:-iptables}" in + iptables) + params+=" --proxy-mode=iptables --iptables-sync-period=1m --iptables-min-sync-period=10s" + ;; + ipvs) + # use 'nf_conntrack' instead of 'nf_conntrack_ipv4' for linux kernel >= 4.19 + # https://github.com/kubernetes/kubernetes/pull/70398 + local -r kernel_version=$(uname -r | cut -d\. -f1,2) + local conntrack_module="nf_conntrack" + if [[ $(printf '%s\n4.18\n' "${kernel_version}" | sort -V | tail -1) == "4.18" ]]; then + conntrack_module="nf_conntrack_ipv4" + fi + + if ! sudo modprobe -a ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh ${conntrack_module}; then + # If IPVS modules are not present, make sure the node does not come up as + # healthy. + exit 1 + fi + params+=" --proxy-mode=ipvs --ipvs-sync-period=1m --ipvs-min-sync-period=10s" + ;; + esac + if [[ -n "${KUBEPROXY_TEST_ARGS:-}" ]]; then params+=" ${KUBEPROXY_TEST_ARGS}" fi