- 博客(107)
- 资源 (37)
- 收藏
- 关注

原创 【github开源】Linux iptables 界面化 分布式 管理平台 go vue,底座firewalld
基于firewalld底座的iptables UI平台
2023-04-23 01:25:12
1207

原创 【操作系统系列】目录
操作系统视频课程随课记录感谢老师提供视频,感谢网友提供的记录,免手打了第三节 内存管理 连续内存分配 Contiguous memoryallocation第四节 内存管理 非连续内存分配 Non-contiguous memoryallocation第五节 内存管理 虚拟内存 VirtualMemory第六节 页面置换算法 Page ReplacementAlgorithms第七节 进程管理 ProcessMamagement第八节 CPU调度算法 CPU Scheduling
2022-04-27 17:28:48
665
原创 kube-proxy参数ClusterCIDR做什么
本篇文章发布于,转载请声明出处哦~我们可以看到,kube-proxy有一个的参数,我们就来解开这个参数究竟有没有用可以看到,参数说明是说,如果配置,那么从外部发往 Service Cluster IP 的流量将被伪装,从 Pod 发往外部 LB 将被直接发往对应的 cluster IP。但实际上做了什么并不知道,那么就从源码解决这个问题。
2023-10-24 22:21:17
788
原创 kube-proxy参数ClusterCIDR做什么
可以看到这里做了几个链,在 *KUBE-SERVICES* 链中指明了非来自 ClusterCIDR 的 IP 都做一个,并且访问的目的地址是 *KUBE-CLUSTER-IP* (ipset 里配置的地址) 那么将跳转到 *KUBE-MARK-MASQ* 链做一个 ` --set-xmark 0x4000/0x4000` ,而在 *KUBE-POSTROUTING* 中对没有被标记 `0x4000/0x4000` 的操作不做处理。但实际上做了什么并不知道,那么就从源码解决这个问题。
2023-10-24 22:19:53
456
原创 centos6/7 SOCKS5 堆溢出漏洞修复(RPM方式)curl 8.4 CVE-2023-38545 CVE-2023-38546
更新10月11日发布的 curl 8.4.0版本,在新版本中修复漏洞 CVE-2023-38545 和 CVE-2023-38546
2023-10-14 14:44:15
774
原创 协议数据单元 帧 包 段 报文之间的区别
对于传输层之上,协议数据单元没有特定的名词,可以统称为协议数据单元或者数据,整个PDU分层结构图如下图所示,其中 T 表示 Trailer,H 表示 Header,通常H包含源地址和目的地址及一些用于管理通信的控制信息。在每层中,PDU的名称都是不同的,这也是很多人的疑问,一会数据报文称为数据包,一会数据报文成为数据帧,该文介绍网络中的单元,以了解之间的区别。) ,上面讲到,IP数据包会以固定大小的数据包进行发送,如果超出大小的会被划分为多个数据包,每个数据包的碎片就被称之为。
2022-11-01 00:43:05
1815
原创 ch08 C语言 文件处理
操作系统在内存空间中预留了一定的存储空间,在输入或输出达到一定量后进行I/O操作,这部分空间就叫做缓冲区。如果,全缓冲模式下,缓冲区没满也没刷新,那么只有在文件关闭时, 缓冲区会被自动刷新(写入到文件)文件是指以字节的形式存储的数据源,使用C语言将文件数据以输出输出的形式处理叫做文件处理。是用于打开文件并返回文件的 FILE 指针,而后通过文件只恨进行I/O操作。函数,通常情况下二进制文件读取没有意义,只是做类似文件拷贝的操作。中的一种结构体,包含了文件的一些信息。文件指针通常被用于处理正在访问的文件,
2022-10-08 22:27:25
482
原创 谷歌翻译 失效/无法使用方法
这次事件疑似2021年11月26日 google翻译辱华事件的结尾,自从2011年谷歌除翻译和地图在大陆建设服务器外的其他服务被停止后,10年来从未停止这些服务,这次显然是谷歌内部战略调整。谷歌2022年9月26日左右停止了在中国地区的谷歌翻译服务包含 translate.google.cn 与 translate.googleapi.com,其给出原因为“使用量低” 来源。在论坛中找到了前段时间谷歌翻译工作人员回复,Google翻译团队不负责对数据流限制的地区的服务,并不可能强制的免费为每个人服务。
2022-10-02 20:40:53
3117
1
原创 ch07 复合结构
声明结构体的语法如下struct是关键字,structureName定义的新数据类型,variable{}是作为使用声明的新变量名每个成员方法结尾都是 “;" 而不是逗号 ”,"结构体不能递归变量可以有多个例如声明一个学生的结构体,而student是作为一个新的数据类型存在int roll;};Notes:在定义(创建)结构体变量前,结构体成员不会占用内存。
2022-10-02 19:34:21
784
原创 ch06 C语言的内存结构
heap对于stack来说,最大的特点就是没有自动的内存管理功能,所有内存的申请和销毁都是通过开发者自行定义的,C中的Glibc API 提供了申请和销毁heap内存的功能。代码段包含可执行的机器指令,这部分包含了程序的逻辑,为了防止堆, 栈的溢出,代码段在内存结构中处于布局中最下方。当程序编译后(默认生成。所有已初始化的静态变量和全局变量都被存储在DS中,该段具有写权限,程序可以在运行时修改该段中变量的值。ELF:这是系统中标准二进制格式,其一些功能包含,动态链接,动态加载,对程序运行时控制。
2022-09-28 23:28:46
1236
原创 ch05 pointer
值是相同的,而一个const修饰的指针变量是不可改变的,故a不能被赋值,下列代码是不合法的。上面知道了,数组变量指向的是数组的起始元素(第一个元素)的地址指针,那么通过指针可以对数组进行访问。野指针是指,没有有效地址的空间的指针,例如声明了指针变量没有对其赋值,这种情况下会出现。修饰的指针变量是不能改变指针变量所指向的地址的变量,通俗来讲即不能被改变值的指针变量。上面例子中,变量a是一个数组,而变量a代表的是一个指向该数组第一个元素的地址,指针数组是指数组存储的内容是指针,即数组内所有的元素都是指针。
2022-09-23 17:29:58
787
原创 ch04 function
C中函数定义的语法如下function body // 函数中要处理任务的逻辑 }:函数返回值的数据类型:函数名:参数列表(可选),定义传递给函数的数据类型、顺序和参数的数量。:调用函数时任务处理和执行的语句。
2022-09-23 17:29:00
419
原创 ch03 数组和字符数组
有两杯装满水的杯子来代表变量的值,如果需要交换两杯水到对方,就如同交换两个变量的值,此时需要第三个杯子来交换液体,就像第三个变量用作临时存储变量的值一样。数组中的数组,又称为多维数组(*** multidimensional arrays***)。),以 ”\0“ 结尾,抽象来说,C语言中字符串就是数组类型的char。在C语言中,数组和字符串都是二等公民,一旦声明后,不支持赋值运算符。例如,数组的倒序可以使用该方法,也是其他算法中的基础。),(8 > 5),不会交换,至此最后一位排序正确。
2022-09-23 17:28:05
641
原创 ch02 格式化与流程控制
在 switch case 中满足条件,则执行继续到下一个 case 子句,如果没有明确指定执行应该退出 switch 语句。while 是 c 语言中最基础的循环,while将检查expression,直到expression为false将推出循环。for是类似与while的循环,只是语法上不同,for提供了三个表达式。是三元运算符,因为它需要三个值,这是 C 中唯一的三元运算符。下面例子中,将从10开始执行,跳过15继续从16开始到20结束。) 将决定采取什么动作,循环将决定采取某种行动的次数。
2022-09-23 17:27:06
553
原创 ch01变量和数据结构
变量的定义():告诉编译器应为变量创建多少存储空间或者在哪里创建存储空间(借助于数据类型)**变量声明 **(Definition):只声明不赋值的变量叫做变量定义,int a变量定义会开辟内存空间。变量声明不会开辟内存空间变量要想使用必须有定义声明指示编译器存在变量,而定义表示编译器为变量创建的存储位置和存储量。
2022-09-23 17:26:06
822
原创 ch0 ide
Note: 对于完全脱离C盘安装可以使用下面的脚本,更改变量为要安装的路径。添加行号:工具–》选项 --》文本编辑器–》C/C++ --》行号。下载安装引导命令,下载完成后使用命令(对于C++来说)随后会触发下载,等待下载完成后,在。根据提示,替换gcc路径即可。
2022-09-23 17:24:57
527
原创 kubernetes网络模型
底层网络顾名思义是指网络设备基础设施,如交换机,路由器,DWDM使用网络介质将其链接成的物理网络拓扑,负责网络之间的数据包传输。图:Underlay network topology可以是二层,也可以是三层;二层的典型例子是以太网Ethernet,三层是的典型例子是互联网Internet。而工作与二层的技术是vlan,工作在三层的技术是由OSPF,BGP等协议组成叠加网络是使用网络虚拟化技术,在underlay网络上构建出的虚拟逻辑网络,而无需对物理网络架构进行更改。............
2022-08-17 16:49:21
626
原创 H3C HCL与WSL2共存
进入VirtualBox安装目录, 确定当前目录下存在VBoxManage.exe文件, 在当前目录打开powershell. 或者你将VBoxManage.exe所在目录加入环境变量, 任意路径下打开powershell.并且开启了WSL2后并于其他虚拟化平台(VirtualBox, Vmvare)做到兼容的情况下,这种情况大部分禁止套娃(虚拟化下在虚拟化),通过安装虚拟机的方式再安装。下载好安装时,直接下一步直至完成即可,VirtualBox已被内嵌至安装包内了。Notes:如果需要抓包,自行安装。..
2022-08-11 20:25:32
790
原创 巧用Prometheus来扩展kubernetes调度器
scheduler允许进行自定义,但是对于只需要引用对应的,并且实现自己的plugins的逻辑即可。err!= nil {而允许注入 out of tree plugins,也就是注入外部的自定义 plugins,这种情况下就无需通过修改源码方式去定义一个调度器,而仅仅通过自行实现即可完成一个自定义调度器。// WithPlugin 用于注入out of tree plugins 因此scheduler代码中没有其引用。其中是提供了Kubernetes API与scheduler。.........
2022-08-08 02:02:34
928
2
原创 最小化安装debian11
下面部署时选择键盘布局:中国大陆使用的键盘布局是美国-英语,不要选择英国-英语之类,布局是不一样的,会存在按键输出的结果会不同。下一步创建一个非ROOT用户,这个步骤是必须的,并为这个新创建的帐户分配一个密码。Notes:选择了DVD ISO将离线完成安装,如果使用了CD ISO,将从互联网上检索包并安装,这个时间将很长。几分钟后, 安装后会弹出一个界面,这里会扫描其他的media,这里因为没有,选择No就行。会扫描安装的媒介,这里也有提示,如果没有额外的媒介,可以跳过该步骤。......
2022-08-02 19:18:09
6232
原创 Kubernetes调度
最优选的节点是权重总和最大的节点,即对于满足所有调度要求(资源请求、requiredDuringScheduling亲和表达式等)的每个节点,通过迭代该字段的元素来计算总和如果节点匹配相应的matchExpressions,则将“权重”添加到总和中;亲和度和反亲和度虽然可以阻止Pod在特定节点上运行,但还存在一个问题,就是亲和度和反亲和度需要声明运行的节点或者是不想运行的节点,如果忘记声明,还是会被调度到对应的Node上。一般情况下,亲和度分为“例如,如果需要在一组特定的节点上运行pod,可以设置在“...
2022-07-31 00:42:07
769
原创 nohup原理
以便shell在关闭或注销后命令可以在后台继续运行。nohup做的工作就是让nohup后的命令不在是当前shell的子命令。而是PPID=1的进程(进程的PPID=1)。这种情况下不能被带回到前台。对于输出的重定向,对于STDOUT/STDERR会忽略,然后写入到。nohup执行会忽略信号。...
2022-07-29 13:05:35
472
原创 彻底搞懂kubernetes调度框架与插件
v1kindname参数的描述maxSkewRequired,Pod分布不均的程度,并且数字必须大于零当,则定义目标拓扑中匹配pod的数量与全局最小值(拓扑域中的标签选择器匹配的pod的最小数量)maxSkew之间的最大允许差异。例如有3个Zone,分别具有2、4和5个匹配的pod,则全局最小值为2当,scheduler会为减少倾斜的拓扑提供更高的优先级。minDomainsoptional,符合条件的域的最小数量。如果不指定该选项。与。.........
2022-07-27 23:01:52
1224
原创 深度解析kube-scheduler调度上下文
在构建一个scheduler时经历如下步骤准备cache,informer,queue,错误处理函数等添加事件函数,会监听资源(如Pod),当有变动则触发对应事件函数,这是入站activeQ构建完成后会run,run时会run一个,这个是作为不可调度队列BackoffQ不可调度队列会根据注册时定期消费队列中Pod将其添加到activeQ中启动一个的loop,这个是调度上下文中所有的扩展点的执行,也是activeQ的消费端获取pod执行各个扩展点,如果出错则Error函数。......
2022-07-21 23:45:39
662
原创 kubernetes调度概念与工作流程
但是,Pod中的每个容器对资源的要求都不同,每个Pod也有不同的要求。注kubernetes官方没有找到预选和优选的概念,而Predicates和filtering是处于预选阶段的动词,而Priorities和scoring是优选阶段的动词。因为绑定事件时异步发生的,该插件是为了避免Pod在绑定到节点前时,调度到新的Pod,使节点使用资源超过可用资源情况。通过上面步骤过滤过得列表则是适合托管的Pod,这个结果通常来说是一个列表,如何选择最优Node进行调度,则是接下来打分的步骤步骤。...
2022-07-18 17:49:02
634
原创 深入解析Kubernetes admission webhooks
admission controllers的特点:下图,显示了用户操作资源的流程,可以看出 admission controllers 作用是在通过身份验证资源持久化之前起到拦截作用。在准入控制器的加入会使kubernetes增加了更高级的安全功能。这里找到一个大佬博客画的图,通过两张图可以很清晰的了解到admission webhook流程,与官方给出的不一样的地方在于,这里清楚地定位了kubernetes admission webhook 处于准入控制中,RBAC之后,push 之前。根据官方提供的说
2022-07-11 21:23:30
1143
原创 【经验分享】如何为visio扩展云服务图标
各个云厂商都会为自己的服务提供通用可缩放矢量图形 (SVG) 图标,以便用户为自己的软件绘制架构图,例如Microsoft 为Visio 提供 Azure 服务的图标。文本在这里简单整理了几个关于云服务的图标更多的图标可以在github或google搜索相关关键词 网络上还是有很多相关的图标库为了能使下载的图标在Visio 中可用,只需要简单的一个步骤即可。将下载下来的图标放置到 中文系统为 我的图形需要安装visio后才会有这个文件夹如图所示:测试导入后的效果,我们在这里导入了aws与azure
2022-07-06 19:02:46
1968
原创 让你的nginx支持分布式追踪opentracing
NGINX 是一个通用且流行的应用程序。也是最流行的 Web 服务器,它可用于提供静态文件内容,但也通常与其他服务一起用作分布式系统中的组件,在其中它用作反向代理、负载均衡 或 API 网关。分布式追踪 是一种可用于分析与监控应用程序的机制,将追踪在从源到目的的整个过程中的单个请求,这与仅通过单个应用程序域来追踪请求的形式不同。换句话说,我们可以说分布式追踪是对跨多个系统的多个请求的拼接。拼接通常由一个或多个相关 ID 完成,并且跟踪通常是一组记录的、跨所有系统的结构化日志事件,存储在一个中心位置。在这种
2022-07-04 00:30:24
910
原创 通过Go语言创建CA与签发证书
本篇文章中,将描述如何使用go创建CA,并使用CA签署证书。在使用openssl创建证书时,遵循的步骤是 创建秘钥 > 创建CA > 生成要颁发证书的秘钥 > 使用CA签发证书。这种步骤,那么我们现在就来尝试下。首先,会从将从创建 CA 开始。CA 会被用来签署其他证书接下来需要对证书生成公钥和私钥然后生成证书:我们看到的证书内容是PEM编码后的,现在我们有了生成的证书,我们将其进行 PEM 编码以供以后使用:创建证书证书的 与CA的 属性有稍微不同,需要进行一些修改为该证书创建私钥和公钥
2022-07-01 22:17:10
2332
原创 利用kubernetes中的leader选举机制来完成自己的HA应用
前一章中,对kubernetes的选举原理进行了深度剖析,下面就通过一个example来实现一个,利用kubernetes提供的选举机制完成的高可用应用。对于此章需要提前对一些概念有所了解后才可以继续看下去如果仅仅是使用Kubernetes中的锁,实现的代码也只有几行而已。生成镜像这里已经制作好了镜像并上传到dockerhub()上了,如果只要学习运行原理,则忽略此步骤准备资源清单默认情况下,Kubernetes运行的pod在请求Kubernetes集群内资源时,默认的账户是没有权限的,默认服务帐
2022-06-29 00:48:21
298
原创 深入解析kubernetes中的选举机制
在 Kubernetes的 , , 以及使用 的底层实现 都支持高可用系统中的leader选举,本文将以理解 (底层的实现是 ) 中的leader选举以在kubernetes controller中是如何实现的。在运行 时,是有一些参数提供给cm进行leader选举使用的,可以参考官方文档提供的 参数 来了解相关参数。本身以为这些组件的选举动作时通过etcd进行的,但是后面对 学习时,发现并没有配置其相关的etcd相关参数,这就引起了对选举机制的好奇。怀着这种好奇心搜索了下有关于 kubern
2022-06-28 18:04:49
1141
原创 深入解析kubernetes controller-runtime
controller-runtime 是 Kubernetes 社区提供可供快速搭建一套 实现了controller 功能的工具,无需自行实现Controller的功能了;在 与 也是使用 。本文将对 的工作原理以及在不同场景下的使用方式进行简要的总结和介绍。 主要组成是需要用户创建的 和 以及 自己启动的 和 。由图可知,Controller会向 Informer 注册一些列eventHandler;然后Cache启动Informer(informer属于cache包中),与ApiS
2022-06-27 22:17:18
2626
原创 envoy获取客户端真实IP
在envoy作为前端代理时,用户ip的获取很重要,一般获取ip的方式。都是通过Header中的 、 或 等属性获取,但是如果确保Envoy可以获取到的ip是真实的用户ip呢?本篇继续解密!Remote Address是nginx与客户端进行TCP连接过程中,获得的客户端真实地址。Remote Address 无法伪造,因为建立 TCP 连接需要三次握手,如果伪造了源 IP,无法建立 TCP 连接,更不会有后面的 HTTP 请求。一般情况下,在Envoy作为最外层代理时,此IP为真实的IP客户端IPX-
2022-06-23 21:30:40
963
原创 使用Aggregated APIServer扩展你的kubernetes API
Kubernetes apiserver aggregation AA 是Kubernetes提供的一种扩展API的方法,目前并没有GA众所周知,kubernetes扩展API的方法大概为三种:CRD、AA、手动扩展源码。根据CNCF分享中Min Kim说的AA更关注于实践,而用户无需了解底层的原理,这里使用过 , 的用户是很能体会到这点。官方也给出了CRD与AA的区别要想很好的使用AA,就需要对kubernetes与 AA 之间认证机制进行有一定的了解,这里涉及到一些概念在下面的说明中,所有出现的API
2022-06-22 23:20:32
870
原创 kubernetes code-generator使用
Kubernetes中提供了多种自定义控制器的方式:Controller 作为CRD的核心,这里将解释如何使用 来创建自定义的控制器,作为文章的案例,将完成一个 Firewalld Port 规则的控制器作为描述,通过 Kubernetes 规则来生成对应节点上的 iptables规则。code-generator需要预先下载 。因为这个工具不是必需要求的。编写代码模板要想使用 生成控制器,必须准备三个文件 , , 。在使用 时,就需要对 的tag进行了解。 的tag是根据几个固定格
2022-06-20 21:39:13
502
原创 编写自己的kubernetes controller
根据Kuberneter文档对Controller的描述,Controller在kubernetes中是负责协调的组件,根据设计模式可知,controller会不断的你的对象(如Pod)从当前状态与期望状态同步的一个过程。当然Controller会监听你的实际状态与期望状态。通过日志可以看出,Pod create后的步骤大概为4步:大致上与 看到的内容页相似...
2022-06-19 17:43:33
248
原创 使用CRD扩展Kubernetes API
在 Kubernetes API 中,resources 是存储 API 对象集合的endpoint。例如,内置 Pod resource 包含 Pod 对象的集合。当我们想扩展API,原生的Kubernetes就不能满足我们的需求了,这时 CRD () 就出现了。在 Kubernetes 中创建了 CRD 后,就可以像使用任何其他原生 Kubernetes 对象一样使用它,从而利用 Kubernetes 的所有功能、如安全性、API 服务、RBAC 等。Kubernetes 1.7 之后增加了对 CRD
2022-06-19 17:41:38
407
CentOS6 可用的 curl 8.4 rpm 包
2023-10-14
CentOS7 可用的 curl 8.4 rpm 包
2023-10-14
Bitvise SSH 9.27 2023年最新版本
2023-04-09
2023 最新在 centos7上可用的 dbus rpm包
2023-03-23
决策树测试:纸币认证数据集
2022-06-03
Firewalld http api管理接口
2020-09-17
centos 7 openssh7.9p 201810月最新版,基于最新版openssl打包,升级需要升级opessl
2018-11-08
golang windows下vscode开发环境所需依赖
2018-11-04
centos 7.x openssh7.8p RPM包
2018-09-13
win10小娜卸载工具Uninstall Cortana
2018-08-22
libiconv-1.15.rpm centos7,安装php的扩展
2018-08-12
openssl1.0.2o rpm包。最新版
2018-07-25
centos7 openssh7.7p rpm包
2018-07-25
不加密 从无到有搭建中小型互联网公司后台服务架构与运维架构
2018-06-17
openssh7.7p centos6.x 64位 rpm包,
2018-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人