前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes 环境中切换代理ipvs模式

Kubernetes 环境中切换代理ipvs模式

作者头像
2546610233
发布2024-05-08 17:17:41
780
发布2024-05-08 17:17:41
举报
文章被收录于专栏:误入歧途误入歧途

Kubernetes 环境中切换代理ipvs模式

service代理默认使用iptables规则通过内核模块netfilter实现流量转发,内核转发效率高,但是iptables不具备更为灵活的负载均衡策略,只是将流量随意的转发至后端Pod,当Pod不可用时也无法进行健康检查;就以下是将默认流量转发修改为ipvs。

启动ipvs模块

启用 ipvs 模块 首先,您需要创建一个配置文件 /etc/sysconfig/modules/ipvs.modules,并将以下内容写入其中:

代码语言:javascript
复制
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack

然后,将配置文件设置为可执行,并运行它,以加载所需的内核模块:

代码语言:javascript
复制
# chmod 755 /etc/sysconfig/modules/ipvs.modules
# bash /etc/sysconfig/modules/ipvs.modules

最后,您可以使用以下命令检查加载的内核模块:

代码语言:javascript
复制
# lsmod | grep -e ip_vs -e nf_conntrack
修改代理模式为ipvs

修改kube-proxy的comfigmaps文件

代码语言:javascript
复制
# kubectl get configmaps -n kube-system kube-proxy
NAME         DATA   AGE
kube-proxy   2      39d

# kubectl edit cm -n kube-system kube-proxy
 44     mode: "ipvs"  #默认mode: ""为空,使用iptables
 
# kubectl edit cm -n kube-system kube-proxy 
configmap/kube-proxy edited

因为kube-prooxy是用daemonsets控制器创建的,直接删除kube-proxy的Pod,让他重建就可以了

代码语言:javascript
复制
# kubectl get pod --show-labels -n kube-system | grep kube-proxy  #删除之前的pod名称

# kubectl delete pod  -l  k8s-app=kube-proxy -n kube-system 

# kubectl get pod --show-labels -n kube-system | grep kube-proxy  #删除后发现已经重建完成并运行
完成配置验证IPVS功能

查看日志"Using ipvs Proxier","Creating dualStackProxier for ipvs"已经使用并创建了ipvs。

代码语言:javascript
复制
# kubectl logs  kube-proxy-6nglx -n kube-system | grep ipvs
I0821 03:07:27.736909       1 server_others.go:269] "Using ipvs Proxier"
I0821 03:07:27.736956       1 server_others.go:271] "Creating dualStackProxier for ipvs"

配置已经生效并且 kube-proxy 在 ipvs 模式下运行,可以验证 IPVS 功能是否正常。在一个运行着服务的 Node 上运行ipvsadm -Ln | grep <service-ip>命令,将替换<service-ip>为您实际的服务 IP 地址:

代码语言:javascript
复制
# ipvsadm -Ln| grep 12.12.1.100
TCP  12.12.1.100:30080 rr
TCP  12.12.1.100:32411 rr
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Kubernetes 环境中切换代理ipvs模式
    • 启动ipvs模块
      • 修改代理模式为ipvs
        • 完成配置验证IPVS功能
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com