rancher-rke2 集群 kube-proxy 切换为 ipvs 模式
本文永久链接: https://www.xtplayer.cn/rke2/rancher-rke2-kubeproxy-switch-to-ipvs/
在 rancher RKE2 中切换 kube-proxy 从默认的 iptables 模式到 IPVS 模式需要进行一些配置修改。以下是详细步骤:
检查必要的内核模块
确保节点上加载了 IPVS 所需的内核模块:
# 检查已加载的模块 |
手动安装 rke2 集群
创建或者编辑已有的 RKE2 配置文件
sudo mkdir -p /etc/rancher/rke2/ |
配置 kube-proxy 使用 IPVS
在配置文件中添加以下内容:
kube-proxy-arg: |
重启 RKE2 服务
# 如果 RKE2 正在运行,先停止 |
验证配置
等待 RKE2 启动完成后,验证 kube-proxy 模式:
# 检查 kube-proxy pod 日志 |
验证 IPVS 工作
# 查看 IPVS 规则 |
通过 rancher ui 安装 rke2 集群
在 rancher ui 进入集群管理,点击目标集群右侧的省略号菜单(三个竖点),选择编辑 YAML。
有两种配置场景,
所有节点都切换成 ipvs
在
spec.rkeConfig.machineGlobalConfig
下,添加如下的配置machineGlobalConfig:
kube-proxy-arg:
- proxy-mode=ipvs
- ipvs-strict-arp=true
- "ipvs-scheduler=rr" # 可选:设置调度算法,rr=轮询
- "ipvs-min-sync-period=1s" # 默认 1s
- "ipvs-sync-period=5s"
- "kube-api-burst=30" # 默认值 10
- "kube-api-qps=15" # 默认值 5
# 如果主机有多网卡,可以通过以下配置指定网卡。
# - "bind-address=你的节点IP"某些特定节点切换成 ipvs
在
spec.rkeConfig.machineSelectorConfig
下,添加类型如下的配置machineSelectorConfig:
- config:
protect-kernel-defaults: false
kubelet-arg:
- max-pods=100
# kube-proxy-arg:
# - proxy-mode=ipvs
# - ipvs-strict-arp=true
- machineLabelSelector:
matchLabels:
a: b
config:
kubelet-arg:
- max-pods=110
- machineLabelSelector:
matchLabels:
c: d
config:
kubelet-arg:
- max-pods=120
# kube-proxy-arg:
# - proxy-mode=ipvs
# - ipvs-strict-arp=true注意:如果一组 config 下没有添加
machineLabelSelector.matchLabels
,那么表示匹配所有节点。添加machineLabelSelector.matchLabels
之后,这组 config 定义的参数将只作用于具有指定标签的主机。验证 IPVS 工作
# 查看 IPVS 规则
ipvsadm -Ln
# 查看统计信息
ipvsadm -L --stats
注意事项
- 集群影响:切换模式会导致短暂的网络中断
- 内核要求:确保内核支持 IPVS 所需模块
- 现有连接:现有连接可能会在切换过程中中断
- 备份配置:修改前备份现有配置
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 IT老男孩!