24. Kernel 4.19环境下,Cilium网络仍然需要使用iptables
在设计这套容器集群服务时,我从原来的k3s架构中分离出一个问题,那就是容器网络插件应该选择哪个。因为我设计的目标是给服务器领域使用的容器引擎,所以我就不需要考虑太多边缘IOT设备的情况,直接拉满技能找了cilium。cilium借助内核ebpf技术的出现,让我看到了网络性能更好的选择。
问题:
我一直是自己用k8e来解决需要容器服务的需求,所以没有太在意iptables的能力问题。有一天看到cilium提供了去除kube-proxy的解决方案,我特别高兴的把k8e中自带的kube-proxy代码去掉了。这个太好了。大家知道在kube-proxy时代,SVC的规则是通过不断刷iptables的规则表实现的。因为是clusterip,那么一个业务ip,就需要刷所有主机的iptables规则表。早期100台服务器还可以,老外使用k8s也没有那么大集群。随着中国IaaS厂商的all in,这把k8s的集群规则拉满到上万台,iptables的问题就被暴露出来了。华为云马上提出了使用IPVS技术来解决部分问题:南北向的规则本身就是Proxy机制,使用IPVS可以通配符规则,这样就可以一个网段一个网段的配置,规则数量马上就下来了。几千台机器刷一遍也不成问题。但是这里还是甩不掉kube-proxy来解决东西向网络的DNAT网络的问题,解决方法好办,请使用更高级的SDN overlay网络插件来解决,比如cilium。几千台机器使用flannel是搞不定了。知道吧。但是经过实践发现,我们误解了cilium的能力,在kernel 4.19环境下,我们仍然无法丢掉iptables。好多特性kernel还是搞不定。
注意:
cilium的官方文档默认提示基础网络功能,Kernel >=4.9,但是cilium依据ebpf还提供了
相关文章:
24. Kernel 4.19环境下,Cilium网络仍然需要使用iptables
在设计这套容器集群服务时,我从原来的k3s架构中分离出一个问题,那就是容器网络插件应该选择哪个。因为我设计的目标是给服务器领域使用的容器引擎,所以我就不需要考虑太多边缘IOT设备的情况,直接拉满技能找了cilium。cilium借助内核ebpf技术的出现,让我看到了网络性能更好…...
java中的容器(集合),HashMap底层原理,ArrayList、LinkedList、Vector区别,hashMap加载因子0.75原因
一、java中的容器 集合主要分为Collection和Map两大接口;Collection集合的子接口有List、Set;List集合的实现类有ArrayList底层是数组、LinkedList底层是双向非循环列表、Vector;Set集合的实现类有HashSet、TreeSet;Map集合的实现…...
Linux Server 终止后立即重启报错 bind error: Address already in use
先启动Server,再启动Client,然后使用CtrlC关闭Server,马上再运行Server,会得到以下结果: bind error: Address already in use这是因为,虽然Server的应用程序终止了,但TCP协议层的连接并没有完全…...
【Python 千题 —— 基础篇】分解数据
题目描述 题目描述 编写一个程序,输入一个类似 “233,234,235” 格式的字符串,然后提取字符串中的数字,将这些数字存储在列表中,并输出该列表。在这里,我们使用 eval 函数来解析字符串中的数字。 输入描述 输入一个…...
【C++】C++11新特性之右值引用与移动语义
文章目录 一、左值与左值引用二、右值与右值引用三、 左值引用与右值引用比较四、右值引用使用场景和意义1.左值引用的短板2.移动构造和移动赋值3.STL中右值引用的使用 五、万能引用与完美转发1.万能引用2.完美转发 一、左值与左值引用 在C11之前,我们把数据分为常…...
家庭燃气表微信抄表识别系统
1.背景需求 目前家里燃气度数的读数上报,每个月在社区微信群里面将手机拍摄的燃气表读数截图(加住址信息水印),发到群里给抄表员。 2.总体设计 设计目标 功能一:手机上随时可以远程采集读数图片(自动加住…...
EF执行迁移时提示provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的
ef在执行时提示provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。 只需要在数据库链接字符串后增加EncryptTrue;TrustServerCertificateTrue;即可 再次执行...
视频标注的两个主要方法
视频标注技术 单一图像法 在自动化工具面世之前,视频标注效率不高。各公司使用单一图像法提取视频中的所有帧,然后使用标准图像标注技术将它们作为图像来标注。在30fps的视频中,每分钟有1800帧。这个过程没有利用视频标注的优势,…...
学成在线第一天-项目介绍、项目的搭建、开发流程以及相关面试题
目录 一、项目介绍 二、项目搭建 三、开发流程 四、相关面试题 五、总结 一、项目介绍 背景 业务 技术 背景:首先是整个这个行业的背景 然后基于这个行业的背景引出当前项目的背景 业务:功能模块 功能业务流程 技术:整体架构&am…...
《数据结构与算法之美》读书笔记1
Java的学习 方法参数多态(向上和向下转型) 向上转型: class Text{public static void main(String[] args) {Animals people1 new NiuMa();people1.eat1();//调用继承后公共部分的方法,没重写调用没重写的,重写了调…...
接口测试经验合集
一 、接口测试常见问题 前景提要:由于本人测试小白,可能所遇问题都较为基础,测试小白可以参考 1.1 postman会报 connect ECONNREFUSED jemeter会报 org.apache.http.conn.HttpHostConnectException: Connect tofailed: Connection refus…...
Leetcode—2331.计算布尔二叉树的值【简单】
2023每日刷题(六) Leetcode—2331.计算布尔二叉树的值 递归实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool evaluateTree(struct TreeNod…...
Java面试(基础篇)——解构Java常见的基础面试题 结合Java源码分析
fail-safe 和fail-fast机制 Fail-fast:快速失败 Fail-fast : 表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出ConcurrentModificationException 异常,从而导致遍历失败 package …...
Ubuntu 17.10的超震撼声音权限
从GNOME GUADEC 2017开发者大会归来之后,Canonical的Didier Roche就开始了一个日更博客系列,主要讲述即将带来的Ubuntu 17.10(Artful Aardvark)发行版将如何从Unity到GNOME Shell的转变。有趣的是,Ubuntu Unity桌面环境…...
图像信号处理板设计原理图:2-基于6U VPX的双TMS320C6678+Xilinx FPGA K7 XC7K420T的图像信号处理板
综合图像处理硬件平台包括图像信号处理板2块,视频处理板1块,主控板1块,电源板1块,VPX背板1块。 一、板卡概述 图像信号处理板包括2片TI 多核DSP处理器-TMS320C6678,1片Xilinx FPGA XC7K420T-1FFG1156,1片X…...
【数组】移除元素(暴力遍历×双指针√)
一、力扣题目链接 27.移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 你不需要考虑数组中超出新长度后面的元素。 二、思路 要知道数组的元素在内存地址中是连续的,不…...
【笔试题】华为研发工程师编程题
1.汽水瓶 某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。 小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。 数据范围:输入的正整数满足 1≤n≤100 1≤n≤…...
如何转换Corona和Vray材质?cr材质转vr材质的方法
cr材质转vr材质的方法一:使用CG Magic插件,一键转换 CG Magic是一款基于3ds Max深度开发的智能化辅助插件,上千项实用功能,降低渲染时长,节省时间和精力,大幅简化工作流程,助力高效完成创作。 …...
蓝桥每日一题(day 4: 蓝桥592.门牌制作)--模拟--easy
#include <iostream> using namespace std; int main() {int res 0;for(int i 1; i < 2021; i ){int b i;while(b){if (b % 10 2) res ;b / 10;}}cout << res; return 0; }...
leetcode(2)栈
leetcode 155 最小栈 stack相当于栈,先进后出 存储全部栈元素 [-3,2,-1] min_stack,存储栈当前位置最小的元素 [-3,-3,-3] class MinStack:def __init__(self):self.stack []self.min_stack [math.inf]def push(self, x: int) :self.stack.append(x)self.min_sta…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
