10 2023 档案

报文校验和计算
摘要:计算校验和算法 IP、ICMP、UDP和TCP头都有检验和字段,大小都是16bit,算法基本上是一样的。发送报文时计算校验和1、把校验和字段设置为0;2、把需要校验的数据看成以16位为单位的数字组成,依次进行二进制反码求和;3、把得到的结果存入校验和字段中。 接收数据时计算检验和1、把首部看成以16 阅读全文

posted @ 2023-10-30 08:42 王景迁 阅读(630) 评论(0) 推荐(0)

coredns基本原理
摘要:k8s 1.19.0coredns 1.7.0 dns ip获取过程 dns请求到达coredns后,从list/watch本地缓存indexer获取对象,返回结果。 外部域名返回用户配置的IP。 有状态应用Pod域名:pod-name.svc-name.namespace.svc.cluster. 阅读全文

posted @ 2023-10-29 10:38 王景迁 阅读(145) 评论(0) 推荐(0)

coredns自定义域名设置
摘要:# 增加自定义域名www.abc.com,对应的IP是1.2.3.4。 kubectl edit configmap coredns -n kube-system fallthrough表示在hosts找不到解析的域名时,传递给CoreDNS的下一个插件,避免集群内部域名解析失败。 参考资料 htt 阅读全文

posted @ 2023-10-29 09:53 王景迁 阅读(103) 评论(0) 推荐(0)

kubelet pleg is not healthy
摘要:k8s 1.19.0PLEG全称是Pod Lifecycle Event Generator 即Pod生命周期事件生成器,定时检查Pod状态,上报Pod Event事件。 PLEG Start 启动一个协程,每隔1s调用一次relist,根据最新的PodStatus生成PodLiftCycleEve 阅读全文

posted @ 2023-10-28 17:45 王景迁 阅读(451) 评论(0) 推荐(0)

coredns readiness检查失败
摘要:k8s 1.19.0 问题现象 coredns pod因readiness检查失败而无法ready。 删除pod后依然无法恢复。 问题分析 根据kubelet日志,coredns接口检查返回503。 查看coredns日志,发现无法正常访问kube-apiserver。 容器内curl不通,但是宿主 阅读全文

posted @ 2023-10-22 10:28 王景迁 阅读(225) 评论(0) 推荐(0)

隐藏文件占用空间大
摘要:目录空间大头由隐藏文件占据。 du -sh * .[^.]*.cache占据了3.5G 释放后/root空间减少到3.4G 阅读全文

posted @ 2023-10-21 23:23 王景迁 阅读(51) 评论(0) 推荐(0)

Nginx安装lua模块
摘要:前提 已安装完成Nginx 安装LuaJIT wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz tar -zxvf LuaJIT-2.0.5.tar.gz cd LuaJIT-2.0.5 make install PREFIX=/usr/loca 阅读全文

posted @ 2023-10-20 21:25 王景迁 阅读(515) 评论(0) 推荐(0)

Nginx Lua修改返回值
摘要:调试lua脚本ngx.log(ngx.ERR, "xxx")日志会打印到/usr/local/nginx/logs/error.log 修改返回值时避免内容被截断 增加header_filter_by_lua 'ngx.header.content_length = nil';注释后只返回原接口长度 阅读全文

posted @ 2023-10-20 21:18 王景迁 阅读(654) 评论(0) 推荐(0)

zk go client
摘要:go client github.com/samuel/go-zookeepermaster分支 状态转换 zk client与zk server在建立连接、保持连接、断开连接的过程中,会经历各种状态。 zk/constants.go const ( // 暂未使用 StateUnknown Sta 阅读全文

posted @ 2023-10-20 21:11 王景迁 阅读(92) 评论(0) 推荐(0)

SpringMVC自定义处理返回值demo和异步处理模式DeferredResult demo
摘要:搭建自定义返回值处理器demo 新建springboot项目 修改pom.xml <!-- 新增依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</a 阅读全文

posted @ 2023-10-20 21:04 王景迁 阅读(139) 评论(0) 推荐(0)

网卡混杂模式
摘要:网卡工作模式 广播模式:接收广播帧,MAC是0Xffffff的帧为广播帧。多播模式:接收多播帧。直接模式:只接收目的地址是自己MAC地址的帧。混杂模式:接收所有流经网卡的帧。 网卡默认工作模式包括广播模式和直接模式,即只接收广播帧和发给自己的帧。混杂模式用于监控网络。 查看、设置、取消混杂模式 en 阅读全文

posted @ 2023-10-19 08:42 王景迁 阅读(301) 评论(0) 推荐(0)

C语言 mmap完成文件读写
摘要:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/mman.h> #include <fcntl.h> #include <unistd.h> int main() { // 打开文件进行读写 int f 阅读全文

posted @ 2023-10-18 21:47 王景迁 阅读(180) 评论(0) 推荐(0)

C语言 static和extern
摘要:extern头文件定义变量或者函数默认是extern,在整个程序的所有源文件里都可以访问和修改。 static头文件static修饰变量后对其他源文件不可见并持久化,修饰函数后对其他源文件不可见。 阅读全文

posted @ 2023-10-17 22:00 王景迁 阅读(18) 评论(0) 推荐(0)

C语言 通过union共存体释放常量指针指向的堆空间
摘要:union共存体中所有成员占用相同的内存空间。因为free函数参数是void *,常量指针是const void *,所以free函数释放常量指针时会因类型不同而失败。 #include <stdio.h> #include <malloc.h> #include <string.h> typede 阅读全文

posted @ 2023-10-15 10:31 王景迁 阅读(62) 评论(0) 推荐(0)

C语言 strdup函数把字符串复制到新空间
摘要:头文件是string.h。根据传入的字符串参数,malloc分配空间并复制,返回首地址,该地址通过free来释放。 #include <stdio.h> #include <malloc.h> #include <string.h> int main() { char a[20] = "123"; 阅读全文

posted @ 2023-10-15 10:22 王景迁 阅读(38) 评论(0) 推荐(0)

valgrind分析内存
摘要:安装valgrind yum install -y valgrind 分析内存泄漏 valgrind --tool=memcheck --show-leak-kinds=all --undef-value-errors=no --log-file=check --leak-check=full 二进 阅读全文

posted @ 2023-10-15 10:16 王景迁 阅读(38) 评论(0) 推荐(0)

主机字节序和网络字节序
摘要:小端字节序和大端字节序 考虑一个16位整数,它由2个字节组成。内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。Inter x86、ARM核采用的是小端模式, 阅读全文

posted @ 2023-10-15 09:30 王景迁 阅读(175) 评论(0) 推荐(0)

C语言 likely和unlikely
摘要:likely和unlikely作用 在知道哪个发生概率更高的情况下,有if时使用likely和unlikely让代码运行更快。likely和unlikely是两个宏,当有if-else分支时告诉编译器,哪个条件更加有可能发生。likely代表if分支大概率会发生,unlikely代表if分支大概率不 阅读全文

posted @ 2023-10-15 08:57 王景迁 阅读(1027) 评论(0) 推荐(0)

Linux脚本内开异步进程和终端开异步进程区别
摘要:sleep.sh内容 sleep 1000 & echo $! 脚本内开异步进程是1号进程的子进程 终端开异步进程是当前bash进程的子进程 在关闭终端后该异步进程会停止 停止终端时想要继续执行,使用nohup sleep 1000 &,刚开始是终端bash进程的子进程,在终端停止后会变成1号进程的 阅读全文

posted @ 2023-10-13 08:51 王景迁 阅读(26) 评论(0) 推荐(0)

dpdk LPM
摘要:DPDK LPM(Longest Prefix Match)是高性能前缀路由匹配库,用于数据包转发过程中快速查找与dstIP地址最长匹配的路由表项。DPDK LPM查找时只需要提供目的IP,eBPF LPM查找时需要提供目的IP和子网掩码。 LPM实现 高性能:基于前缀树算法实现快速匹配。线程安全: 阅读全文

posted @ 2023-10-01 17:37 王景迁 阅读(366) 评论(0) 推荐(0)

dpdk官方转发例子分析
摘要:例子源码http://dpdk.org/browse/dpdk/tree/examples/skeleton/basicfwd.c main函数主流程 1. 初始化环境抽象层EAL int ret = rte_eal_init(argc, argv); if (ret < 0) rte_exit(E 阅读全文

posted @ 2023-10-01 17:16 王景迁 阅读(271) 评论(0) 推荐(0)

dpvs dnat模式
摘要:dnat模式发送报文 src/ipvs/ip_vs_core.c针对ipv4,INET_HOOK_PRE_ROUTING注册2个函数dp_vs_pre_routing和dp_vs_in,因为nat不做防止DDos攻击的syn_proxy,所以看dp_vs_in。 conn_sched新请求建立连接选 阅读全文

posted @ 2023-10-01 16:55 王景迁 阅读(101) 评论(0) 推荐(0)

docker启动常见应用
摘要:# MySQL 限制0.5个CPU和0.5G内存 docker pull mysql:5.7 docker run -itd --name mysql -p3306 --cpu-period=1000000 --cpu-quota=500000 --memory 512M --rm -e MYSQL 阅读全文

posted @ 2023-10-01 11:12 王景迁 阅读(37) 评论(0) 推荐(0)

vmware创建虚拟机后必备操作
摘要:时区设置成东八区 rm -f /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 桥接模式联网 # VMWare Workstation -> 虚拟机 -> 设置 -> 网络适配器 -> 选择 “桥接模式” -> 阅读全文

posted @ 2023-10-01 11:09 王景迁 阅读(76) 评论(0) 推荐(0)

kube-ovn vpc没有cidr
摘要:kube-ovn中vpc没有cidr,不像传统vpc那样有大网段,关联的subnet cidr可以任意。 kind: Vpc apiVersion: kubeovn.io/v1 metadata: name: vpc0 kind: Subnet apiVersion: kubeovn.io/v1 m 阅读全文

posted @ 2023-10-01 08:57 王景迁 阅读(42) 评论(0) 推荐(0)

导航