k8s开启ipvs

在所有节点安装ipset和ipvsadm(可选)包

1 yum install ipset -y
2 yum install ipvsadm -y

在所有的Kubernetes节点执行以下脚本:

 1cat > /etc/sysconfig/modules/ipvs.modules <<EOF
 2#!/bin/bash
 3modprobe -- ip_vs
 4modprobe -- ip_vs_rr
 5modprobe -- ip_vs_wrr
 6modprobe -- ip_vs_sh
 7modprobe -- nf_conntrack_ipv4
 8EOF
 9# 使用lsmod | grep -e ip_vs -e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。
10chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

修改配置

修改ConfigMap的kube-system/kube-proxy中的config.conf,把 mode: “” 改为mode: “ipvs” 保存退出即可

1kubectl edit cm kube-proxy -n kube-system

删除之前的pod

1kubectl get pod -n kube-system |grep kube-proxy |awk '{system("kubectl delete pod "$1" -n kube-system")}'

查看proxy运行状态

1kubectl get pod -n kube-system | grep kube-proxy

查看日志

如果有 Using ipvs Proxier. 说明kube-proxy的ipvs 开启成功!

1kubectl logs -n kube-system kube-proxy-54qnw

排障

can’t set sysctl net/ipv4/vs/conn_reuse_mode, kernel version must be at least 4.1 说明内核太旧,要升级centos内核版本 https://www.rushui.net/posts/upgrade-centos-kernel-version/

发布日期:2023-03-07 23:45 字数:118 用时 1分钟
tags:k8s