31-k8s集群svc的代理模式-iptables修改为ipvs

 一、概述

        学到这里,我们都知道,k8s集群的外部网络分发,借助kube-proxy组件来完成;

问题:我们为什么要将代理模式修改为ipvs而不继续使用iptables呐?

因为:

        1,iptables底层使用四表五链完成网络代理,效率比较低,而ipvs是采用了iphash的方式实现代理的,效率比较高,因此才会采用ipvs作为生产环境中的网络代理;

        2,iptables不太适合【读】,可读性太低,很乱;

二、查看k8s中的kube-proxy的代理模式

1,查看kube-proxy

[root@k8s231 ingress]# kubectl get pods -n kube-system -o wide

2,查看kube-proxy的日志

        通过查看kube-proxy的日志,我们就知道了我们正在使用iptables还是ipvs为代理模式了;

[root@k8s231 ingress]# kubectl logs -n kube-system kube-proxy-nbt6h

3,【拓展】使用iptables查看svc资源

· 查看现有svc

[root@k8s231 ingress]# kubectl get svc

· 使用iptables查看其中一个svc

[root@k8s231 ingress]# iptables-save | grep 10.200.11.39

· 查看iptables查询出来的规则(往下查一层路由)

[root@k8s231 ingress]# iptables-save | grep KUBE-SVC-CL34MMSZRUFQFSPM

· 再往下查一层

[root@k8s231 ingress]# iptables-save | grep KUBE-SEP-YLLYZD7DXDNDFOFC

· 总结:

        通过一层一层的路由查询,我们就知道了目标地址的终点ip是什么;

三、查看kube-proxy工作模式

        从k8s的1.11版本之后,支持iptables和ipvs两种模式,如果ipvs没有开启,则自动降级为iptables。

1,yaml格式查看kube-proxy

[root@k8s231 ingress]# kubectl -n kube-system get pods kube-proxy-nbt6h -o yaml

可以看到有一个cm资源

查看这个cm资源

[root@k8s231 ingress]# kubectl describe cm -n kube-system kube-proxy

发现“”里面什么都没写,就代表是默认的iptables

四、开始修改代理模式为ipvs

1,k8s集群所有节点加载ipvs模块

yum -y install conntrack-tools ipvsadm.x86_64

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash

modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

2,修改k8s集群的工作模式为ipvs

修改cm资源(kube-proxy)

[root@k8s231 ~]# kubectl -n kube-system  edit cm kube-proxy

切记,【i/a】修改后,要保存退出【:wq】

3,删除原有的kube-proxy的pod

        删除后会重新拉起,然后就修改成功了

[root@k8s231 ~]# kubectl get pods -n kube-system | grep kube-proxy | awk '{print $1}' | xargs kubectl -n kube-system delete pods

        等待重新拉起pod

4,查看是否修改成功

[root@k8s231 ~]# kubectl logs -n kube-system kube-proxy--4hjgr

5,拓展:使用ipvs查看svc路由

[root@k8s231 ~]# ipvsadm -ln | grep 10.200.0.1 -A 5

至此,咱们iptable升级ipvs的代理模式修改就学习完毕了;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/704869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读人工不智能:计算机如何误解世界笔记04_数据新闻学

1. 计算化和数据化的变革 1.1. 每一个领域都在进行计算化和数据化的变革 1.1.1. 出现了计算社会科学、计算生物学、计算化学或其他数字人文学科 1.1.2. 生活已走向计算化&#xff0c;人们却一点也没有变 1.2. 在如今的计算化和数据化世界中&#xff0c;调查性新闻的实践必须…

jdk21本地执行flink出现不兼容问题

环境说明&#xff1a;换电脑尝尝鲜&#xff0c;jdk&#xff0c;flink都是最新的&#xff0c;千辛万苦把之前的项目编译通过&#xff0c;跑一下之前的flink项目发现启动失败&#xff0c;啥都不说了上异常 Exception in thread "main" java.lang.IllegalAccessError: …

Scrapy实战

代码&#xff1a; Spider import scrapy from urllib.parse import urljoin from scrapy import Requestclass JiaSpider(scrapy.Spider):name "jia"allowed_domains ["desk.zol.com.cn"]start_urls ["https://desk.zol.com.cn/dongman/"]d…

left join+group by语句性能优化

一、背景 需求&#xff1a;求【昨日触达】、【本周拜访】、【本月活动数】。 背景&#xff1a;三个维度的数据都按日统计在一张表里。 首先想到的就是left join group by。 1.1 优化前语句 selectuser_id,user_name,org_id,org_name,sum(reach_num) dayReachNum,sum(visit_n…

redis未授权与权限获取

Redis默认情况下&#xff0c;会绑定在0.0.0.0:6379&#xff0c;这样将会将Redis服务暴露到公网上&#xff0c;如果在 没有开启认证的情况下&#xff0c;可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis 以及读取Redis的数据。攻击者在未授权访问Redis的情况下可…

jeesite用字典项配置二级下拉选

1、配置字典项 2、html代码&#xff1a;修改下拉选项框 <div class"col-xs-6"><div class"form-group"><label class"control-label col-sm-4" title""><span class"required">*</span> ${…

ZYNQ:串口-CAN协议转换

前言 目前已经实现zynq的PS-CAN和PL-CAN功能。串口-CAN协议转换是实现以太网-CAN功能的过渡&#xff0c;通过这个流程能够减少后期以太网工程出现问题的频率。阶段性功能目标如下&#xff1a; 实现数据在CAN调试助手和串口调试助手之间的来回转换&#xff0c;从而了解中断机制…

华为云软件开发生产线CodeArts前端DevOps实践

原文链接&#xff1a;CodeArts前端DevOps实践_软件开发生产线 CodeArts_理论实践_DevOps概览 本文主要以CodeArts产品自身为背景&#xff0c;简要介绍一些在前端性能优化方面的优秀实践方法和常见问题。 在开始本文的内容之前&#xff0c;先简单介绍一下华为云CodeArts。Code…

html中的meta 元信息

html中的meta 元信息 1. 配置字符编码 <meta charset"utf-8">2. 针对 IE 浏览器的兼容性配置。 <meta http-equiv"X-UA-Compatible" content"IEedge">3. 针对移动端的配置 <meta name"viewport" content"widt…

MySQL进阶篇2-索引的创建和使用以及SQL的性能优化

索引 mkdir mysql tar -xvf mysqlxxxxx.tar -c myql cd mysql rpm -ivh .....rpm yum install openssl-devel ​ systemctl start mysqld ​ gerp temporary password /var/log/mysqld.log ​ mysql -u root -p mysql> show variables like validate_password.% set glob…

【Flink精讲】Flink状态及Checkpoint调优

RocksDB大状态调优 RocksDB 是基于 LSM Tree 实现的&#xff08;类似 HBase&#xff09; &#xff0c;写数据都是先缓存到内存中&#xff0c; 所以 RocksDB 的写请求效率比较高。 RocksDB 使用内存结合磁盘的方式来存储数据&#xff0c;每 次获取数据时&#xff0c;先从内存中 …

睿尔曼超轻量仿人机械臂—远程文件传输工具使用说明

一、介绍 由于很多开发人员是在Linux下进行开发&#xff0c;但文件资料大多是保存在Windows下&#xff0c;进行文件传输很不方便&#xff0c;所以可通过远程文件传输的方式进行跨系统传输。此类方法有很多&#xff0c;这里讲述的是使用WinSCP工具进行文件远程传输。 WinSCP 是…

Go的CSP并发模型实现M, P, G简介

GMP概念简介 G: goroutine&#xff08;协程&#xff0c;也叫用户态线程&#xff09; M: 工作线程(内核态线程) P: 上下文(也可以认为是cpu&#xff0c;逻辑cpu数量&#xff0c;可以在程序启动的时候设置这个数量&#xff0c;gomaxprocs函数设置) GMP 模型 在 Go 中&#xff…

1504. 统计全 1 子矩形

Problem: 1504. 统计全 1 子矩形 文章目录 思路解题方法复杂度Code 思路 这个问题可以通过压缩数组和单调栈的方法来解决。我们首先遍历矩阵&#xff0c;对于每一行&#xff0c;我们计算出每一列的高度&#xff08;连续的1的数量&#xff09;。然后&#xff0c;我们使用单调栈来…

mysql锁-这条sql加了哪些锁

文章目录 1、 InnoDB的三种行锁2、常见的加锁语句2.1、常见隐式加锁语句2.1、常见显示加锁语句 3、加锁的2条规则4、案例4.1、唯一索引等值查询4.2、唯一索引范围查询4.3、非唯一索引等值查询4.4、非唯一索引范围查询 InnoDB 存储引擎中的行锁的加锁规则。 1、 InnoDB的三种行锁…

04|事务性能优化

4.1大事务的影响 ● 并发情况下&#xff0c;数据库连接池容易被撑爆 ● 锁定太多的数据&#xff0c;造成大量的阻塞和锁超时 ● 执行时间长&#xff0c;容易造成主从延迟 ● 回滚所需要的时间比较长 ● undo log膨胀 ● 容易导致死锁 4.2事务优化 ● 将查询等数据准备操作放…

二. 系统性能评价(2分)

🌟二. 系统性能评价(2分) 性能调整中的性能优化 和 性能评估方法 考试重点 文章目录 🌟二. 系统性能评价(2分)==性能调整中的性能优化 和 性能评估方法 考试重点==@[toc]2.1 性能评价指标 [包含计算]2.2 系统性能调整 [设计计算]2.3 性能优化2.4 性能评估方法2.1 性能评价…

嵌入式驱动学习第一周——vim的使用

前言 本篇博客学习使用vim&#xff0c;vim作为linux下的编辑器&#xff0c;学linux肯定是绕不开vim的&#xff0c;因为不确定对方环境中是否安装了编译器&#xff0c;但一定会有vim。 对于基本的使用只需要会打开文件&#xff0c;保存文件&#xff0c;编辑文件即可。 嵌入式驱动…

iconfont的组件化使用方法(SVG)

目录 一、需求描述二、操作步骤1.在iconfont中选择项目需要使用的图标2.在项目中创建iconfont.js3.创建svgIcon组件 一、需求描述 将iconfont图标库选择的图标以SVG的形式引入项目并通过组件化的形式在项目中引用可控制图标的大小和颜色 二、操作步骤 1.在iconfont中选择项目…

yaml文件详解

Kubernetes 支持 YAML 和 JSON 格式管理资源对象 JSON 格式&#xff1a;主要用于 api 接口之间消息的传递 YAML 格式&#xff1a;用于配置和管理&#xff0c;YAML 是一种简洁的非标记性语言&#xff0c;内容格式人性化&#xff0c;较易读 YAML 语法格式&#xff1a; ●大小写敏…