Kubernetes 环境中切换代理ipvs模式
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模式的更多相关文章
- win的cmd环境中设置***代理
想在win的cmd环境中设置代理进行FQ安装软件,如npm等一系列. 1.配置好shadowsocks,然后编辑服务器,查看代理端口 2.打开win命令行cmd set http_proxy=http ...
- 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 ...
- helm在kubernetes环境中搭建
1.安装helm 1.1.安装helm客户端 各个版本的helm:https://github.com/helm/helm/releases wget https://get.helm.sh/helm ...
- wow64 32位进程中切换64位模式,取回64位寄存器值
32位dbg中编辑的: 7711E9D3 | 6A | | 7711E9D5 | E8 | 7711E9DA | | | 7711E9DE | CB | ret far | 6A E8 CB 64位d ...
- kubernetes环境部署单节点redis
kubernetes部署redis数据库(单节点) redis简介 Redis 是我们常用的非关系型数据库,在项目开发.测试.部署到生成环境时,经常需要部署一套 Redis 来对数据进行缓存.这里介绍 ...
- Kubernetes环境下调整WebLogic JVM基本参数
基于Kubernetes启动WebLogic后,发现JVM的最大heap size一直在700多M左右,通过 kubectl logs 察看pod启动状态,发现日志中并没有-Xms和-Xmx参数.日志 ...
- Kubernetes 在生产环境中常用架构
Kubernetes 在生产环境中常用架构 首先,我们来梳理下Kubernetes生产架构,其设计适用于绝大多数环境.如下图所示 在该架构中,我们可以将其分为四层,如下: Client层:即Kuber ...
- 【原】Storm Local模式和生产环境中Topology运行配置
Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...
- Docker Kubernetes Service 网络服务代理模式详解
Docker Kubernetes Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注 ...
- Kubernetes+Flannel 环境中部署HBase集群
2015-12-14注:加入新节点不更改运行节点参数需求已满足,将在后续文章中陆续总结. 注:目前方案不满足加入新节点(master节点或regionserver节点)而不更改已运行节点的参数的需求, ...
随机推荐
- 开源免费的专注于建立大型个人知识库推荐-Trilium Notes
Trilium Notes是一个分层的笔记应用程序,专注于建立大型个人知识库. 支持相当丰富的 markdown,包括 mermaid 和 latex,而且即时渲染,和 typora 一样.支持代码类 ...
- 数据仓库建模工具之一——Hive学习第二天
Hive的概述 1.Hive基本概念 1.1 Hive简介 Hive本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据存储,说白了hive可以理解为一个将SQL转换为Map ...
- 写写Redis十大类型bitmap的常用命令
其实这些命令官方上都有,而且可读性很强,还有汉化组翻译的http://redis.cn/commands.html,不过光是练习还是容易忘,写一写博客记录一下 bitmap 位图,是由0和1状态表现的 ...
- 我用Awesome-Graphs看论文:解读PowerGraph
PowerGraph论文:<PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs> 上次通过文章< ...
- Python列表、元组、字典和集合的用法
1.列表 标志符号是[],元素可以修改.删除和新增 1.1 提取元素(索引从0开始计算) testList=['A','B','C',1,'D'] print(testList[1]) #打印索引区间 ...
- 【Tycoon City New York】城市梦想家: 纽约 作弊键说明
这游戏是自带快捷键作弊功能的 [Ctrl] + [Alt] + A 加10,000人口 [Ctrl] + [Alt] + C 加$1,000,000资金 [Ctrl] + [Alt] + B 加100 ...
- 【MongoDB】Re02 文档CRUD
三.文档操作(行记录) 不管comment集合是否存在,直接在comment集合中创建一份文档 > db.comment.insert({"articleid":" ...
- 【Java】Generic 泛型
Generic 泛型 为什么需要泛型? 集合容器再设计阶段/声明阶段不能确定这个容器实际存储的是什么类型的对象 JDK5 以前只能把元素设计为Object基类 在JDK5之后用泛型来约束对象类型 除了 ...
- 【SpringCloud】Re04 Gateway
微服务网关: 1.身份认证 和 权限校验 2.服务路由.负载均衡 3.请求限流 搭建服务网关: 网关是一个独立的服务,同样需要被注册中心注册到,这里依然使用的是Nacos <?xml versi ...
- 什么是智慧城市(Smart City)?
Smart City是一个常见的概念,但是这个东西,这个名词到底指代的是什么却一直搞不太清,于是就查了查资料,有了这篇blog. 参考: https://baijiahao.baidu.com/s?i ...