Kubernetes 环境中切换代理ipvs模式

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

启动ipvs模块

启用 ipvs 模块

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

#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack

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

# chmod 755 /etc/sysconfig/modules/ipvs.modules
# bash /etc/sysconfig/modules/ipvs.modules

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

# lsmod | grep -e ip_vs -e nf_conntrack

修改代理模式为ipvs

修改kube-proxy的comfigmaps文件

# 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,让他重建就可以了

# 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。

# 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 地址:

# ipvsadm -Ln| grep 12.12.1.100
TCP 12.12.1.100:30080 rr
TCP 12.12.1.100:32411 rr

Kubernetes 环境中切换代理ipvs模式的更多相关文章

  1. win的cmd环境中设置***代理

    想在win的cmd环境中设置代理进行FQ安装软件,如npm等一系列. 1.配置好shadowsocks,然后编辑服务器,查看代理端口 2.打开win命令行cmd set http_proxy=http ...

  2. Vue-cli3.x在开发环境中(router采用 history模式)出现Failed to resolve async component default: Error: Loading chunk {/d} failed.或者Uncaught SyntaxError: Unexpected token <错误

    使用Vue-cli3.x开发环境中(router采用 history模式)出现Failed to resolve async component default: Error: Loading chu ...

  3. helm在kubernetes环境中搭建

    1.安装helm 1.1.安装helm客户端 各个版本的helm:https://github.com/helm/helm/releases wget https://get.helm.sh/helm ...

  4. wow64 32位进程中切换64位模式,取回64位寄存器值

    32位dbg中编辑的: 7711E9D3 | 6A | | 7711E9D5 | E8 | 7711E9DA | | | 7711E9DE | CB | ret far | 6A E8 CB 64位d ...

  5. kubernetes环境部署单节点redis

    kubernetes部署redis数据库(单节点) redis简介 Redis 是我们常用的非关系型数据库,在项目开发.测试.部署到生成环境时,经常需要部署一套 Redis 来对数据进行缓存.这里介绍 ...

  6. Kubernetes环境下调整WebLogic JVM基本参数

    基于Kubernetes启动WebLogic后,发现JVM的最大heap size一直在700多M左右,通过 kubectl logs 察看pod启动状态,发现日志中并没有-Xms和-Xmx参数.日志 ...

  7. Kubernetes 在生产环境中常用架构

    Kubernetes 在生产环境中常用架构 首先,我们来梳理下Kubernetes生产架构,其设计适用于绝大多数环境.如下图所示 在该架构中,我们可以将其分为四层,如下: Client层:即Kuber ...

  8. 【原】Storm Local模式和生产环境中Topology运行配置

    Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...

  9. Docker Kubernetes Service 网络服务代理模式详解

    Docker Kubernetes  Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注 ...

  10. Kubernetes+Flannel 环境中部署HBase集群

    2015-12-14注:加入新节点不更改运行节点参数需求已满足,将在后续文章中陆续总结. 注:目前方案不满足加入新节点(master节点或regionserver节点)而不更改已运行节点的参数的需求, ...

随机推荐

  1. 全网最适合入门的面向对象编程教程:04 类和对象的 Python 实现-为自定义类添加方法(PySerial 库接收串口数据)

    全网最适合入门的面向对象编程教程:04 类和对象的 Python 实现-为自定义类添加方法(PySerial 库接收串口数据) 摘要: 本文我们主要讲解了如何为自定义类添加方法,pyseria 库的基 ...

  2. 12 二次打开pdf失败

    h5 安卓 iOS均出现pdf二次打开失败

  3. iOS开发基础99-内购in_app

    今天后台支付校验模块报错,拿到凭证去苹果校验返回的结果如下: { "receipt": { "receipt_type": "Production&q ...

  4. 基于django(爱抚宠物) 小程序设计和实现(源码+LW+部署讲解)

    感兴趣的可以先收藏起来,大家在毕设选题,项目以及论文编写等相关问题都可以给我加好友咨询 系统介绍: 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用 ...

  5. PN转Modbus RTU模块连接ACS4QQ变频器通信

    一台完整的机器在出厂前由许多部件组成.但是,由于各种原因,这些组件来自不同的制造商,导致设备之间的通信协议存在差异.Modbus和Profinet代表两种不同的通信协议,Profinet通常用于较新的 ...

  6. oeasy教您玩转vim - 12 - # 词头词尾

    词头词尾 回忆上节课内容 我们这次学了向前一个单词 w 意思是 word 还学习了向后一个单词 b 意思是 backward 这俩命令都落在单词的第一个字母 还有什么好玩的命令吗? 动手练习 我们可以 ...

  7. 支付宝小程序的级联选择器,对接简单操作,Cascader 级联选择器element_ui

    首先,对于element_ui 的动接,由于需要数据格式是 但是支付宝提的接口返回的数据是另一种格式,并且支付宝的三级联动接口是先只有一个列表,点击列表项再发现请求,生成另外一个下拉选择, 需要这个三 ...

  8. 手把手教你集成GraphRag.Net:打造智能图谱搜索系统

    在人工智能和大数据发展的背景下,我们常常需要在项目中实现知识图谱的应用,以便快速.准确地检索和使用信息. 今天,我将向大家详细介绍如何在一个新的.NET项目中集成GraphRag.Net,这是一个参考 ...

  9. spark基础了解—运行层次结构、standalone与onyarn

    spark程序运行层次结构 standalone即主从机制,后续添加了standaloneHA,zk管理master的存活,一旦master挂了会在候选master中诞生新的 HAstandalone ...

  10. SLF4J2.0.x与Logback1.3.x的绑定变动还是很大的,不要乱点鸳鸯谱

    开心一刻 今天跟我姐聊天 我:我喜欢上了我们公司的一个女同事,她好漂亮,我心动了,怎么办 姐:喜欢一个女孩子不能只看她的外表 我:我知道,还要看她的内在嘛 姐:你想多了,还要看看自己的外表 背景介绍 ...