04 2024 档案

k8s限速队列使用场景分析
摘要:场景1:add->add->get->get package main import ( "fmt" "k8s.io/client-go/util/workqueue" ) func main() { queue := workqueue.NewRateLimitingQueue(workqueue 阅读全文

posted @ 2024-04-30 09:13 王景迁 阅读(46) 评论(0) 推荐(0)

go 结构体类型与空接口类型互转
摘要:package main import "fmt" type Stu struct { age int } func main() { var stuInterface interface{} = &Stu{ age: 10, } if stu, ok := stuInterface.(*Stu); 阅读全文

posted @ 2024-04-28 08:39 王景迁 阅读(23) 评论(0) 推荐(0)

Etcd数据
摘要:查询当前db大小 curl 127.0.0.1:2381/metrics | grep etcd_debugging_mvcc_db_total_size_in_bytes snap和wal区别Etcd保存的数据放在/var/lib/etcd/member目录中,分为snap快照和wal预写式日志。 阅读全文

posted @ 2024-04-24 09:15 王景迁 阅读(219) 评论(0) 推荐(0)

命令行调试logrotate
摘要:logrotate配置文件一般存放在/etc/logrotate.d。 场景1:不存在/var/lib/logrotate/status文件 说明没有真正执行过logrotate。/var/lib/logrotate/status会记录上一次logrotate时间,记录的时间可能没有真正执行过。 场 阅读全文

posted @ 2024-04-21 14:13 王景迁 阅读(103) 评论(0) 推荐(0)

kube-ovn转储日志
摘要:kube-ovn v1.10.10 pkg\daemon\controller.goovn-cni每小时通过logrotate命令来转储kube-ovn所有相关日志。 pkg\daemon\controller_linux.go logrotate配置在构建容器镜像时拷贝进去。 阅读全文

posted @ 2024-04-21 12:17 王景迁 阅读(18) 评论(0) 推荐(0)

ovs模糊流表和精确流表
摘要:ovs流表分模糊流表(慢路径)和精确流表(快路径),精确流表数量远少于模糊流表。模糊流表在ovs网桥上,精确流表在ovs datapath上,精确流表由模糊流表自动生成和老化。其中,ovs datapath代码在内核中,ovs_vport_receive函数用于接收报文并处理,ovs_vport_s 阅读全文

posted @ 2024-04-14 21:50 王景迁 阅读(378) 评论(0) 推荐(0)

ubuntu根目录lvm没用满分区空间
摘要:ubuntu 23.10安装虚拟机之后,磁盘分区没有用完,根目录只占了10G。 # lvm逻辑卷使用分区100%空间 lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv # df -h重新计算结果 resize2fs /dev/mapper 阅读全文

posted @ 2024-04-14 20:57 王景迁 阅读(66) 评论(0) 推荐(0)

eBPF xdp和tc区别
摘要:xdp tc 层次 网卡驱动层 数据链路层 位置 进入Linux网络协议栈之前 在Linux网络协议栈中,netfilter之前 方向 只有ingress 有ingress和egress 修改 支持修改报文 支持修改报文,有skb结构,修改更方便 网卡响应关系 网卡响应在xdp之后 网卡响应在tc之 阅读全文

posted @ 2024-04-14 14:35 王景迁 阅读(202) 评论(0) 推荐(0)

Linux内核协议栈skb成员
摘要:struct __sk_buff { __u32 len; __u32 pkt_type; __u32 mark; __u32 queue_mapping; __u32 protocol; __u32 vlan_present; __u32 vlan_tci; __u32 vlan_proto; _ 阅读全文

posted @ 2024-04-14 14:10 王景迁 阅读(112) 评论(0) 推荐(0)

调试eBPF程序
摘要:虽然eBPF内核态部分使用C语言编写,但是无法gdb,只能通过打印来调试。调用类似于C语言中printf函数的bpf_printk函数,打印结果输出到/sys/kernel/debug/tracing/trace。 bpf_printk最多带3个参数,bpf_trace_printk也是如此。 查看 阅读全文

posted @ 2024-04-14 13:54 王景迁 阅读(220) 评论(0) 推荐(0)

eBPF指定网口丢弃icmp报文
摘要:ubuntu 23.10 安装eBPF依赖 # 安装编译工具 apt install -y llvm clang # 确认内核具有BTF支持,路径存在,内核没有BTF支持,使用vmlinux.h无法通过编译 ls /sys/kernel/btf # 生成vmlinux.h # apt install 阅读全文

posted @ 2024-04-14 12:35 王景迁 阅读(88) 评论(0) 推荐(0)

go.mod引用git仓库依赖
摘要:方式1:使用commit id go get k8s.io/client-go@1518fca9f06c6a73fc091535b8966c71704e657b 方式2:使用分支 go get k8s.io/client-go@master 使用分支也是commit id。 方式3:go.mod中写 阅读全文

posted @ 2024-04-11 21:14 王景迁 阅读(171) 评论(0) 推荐(0)

强删pod是否产生update事件
摘要:k8s v1.19.0 强删Pod产生Update事件 informerFactory.Core().V1().Pods().Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ UpdateFunc: func(old, new i 阅读全文

posted @ 2024-04-08 23:17 王景迁 阅读(27) 评论(0) 推荐(0)

go结构体重写String方法从而自定义打印内容
摘要:package main import "fmt" type student struct { name string age int } func (s student) String() string { return fmt.Sprintf("{name is %s, age is %d}", 阅读全文

posted @ 2024-04-08 22:22 王景迁 阅读(217) 评论(0) 推荐(0)

kube-ovn分配vni
摘要:ovn-org/ovn branch-23.06 kube-ovn里面ovn-central的ovn-northd会给logical switch和logical router分配vni,集群内全局唯一,即每个lr和ls都有自己的vni。 northd/northd.covn_datapath_al 阅读全文

posted @ 2024-04-06 11:26 王景迁 阅读(58) 评论(0) 推荐(0)

k8s informer resync机制
摘要:informerFactory创建informer informer一般由informerFactory创建(支持直接创建informer,一般不这么做),informerFactory支持创建多种资源类型的informer,同一个informerFactory中同一种资源类型只创建一个inform 阅读全文

posted @ 2024-04-04 16:31 王景迁 阅读(174) 评论(0) 推荐(0)

Linux 平均负载
摘要:$ uptime07:44:43 up 1:20, 1 user, load average: 0.47, 0.56, 0.56 07:44:43表示当前时间。up 1:20表示系统运行时间。1 users表示正在登录用户数。0.47, 0.56, 0.56表示过去 1 分钟、5 分钟、15 分钟的 阅读全文

posted @ 2024-04-04 15:46 王景迁 阅读(21) 评论(0) 推荐(0)

通过ssh隧道实现full nat
摘要:ssh隧道类似于vxlan隧道,ssh隧道是基于ssh协议来实现的。 node1操作 777端口是节点ssh的新增端口如果22端口正常,那么不需要新增777端口。 vim /etc/ssh/sshd_config # SELinux开放给ssh使用的端口增加777 semanage port -a 阅读全文

posted @ 2024-04-04 15:21 王景迁 阅读(39) 评论(0) 推荐(0)

k8s PV和PVC以及StorageClass
摘要:本地盘和云磁盘区别 本地盘不支持跨物理机迁移,云磁盘支持跨物理机迁移。 本地目录生命周期 emptyDir、downwardAPI、configMap、secret:kubelet创建本地目录,该目录会随着Pod的消亡而删除。hostPath:本地目录一直存在。 PVC、PV和StorageClas 阅读全文

posted @ 2024-04-04 15:15 王景迁 阅读(259) 评论(0) 推荐(0)

MySQL问题 left join查询错误
摘要:使用left join时,左表字段值必须有,右表字段值可以没有。where加右表字段,匹配非空值时,右表字段不能是NULL,必须有具体值。 阅读全文

posted @ 2024-04-04 14:18 王景迁 阅读(64) 评论(0) 推荐(0)

MySQL问题 远程连接数被占满
摘要:设置MySQL单用户远程最大连接数是3 set GLOBAL max_user_connections=3; 查看连接数限制 show variables like '%connections'; 其中,max_connections控制远程连接数和本地连接数总和上限。 尝试继续创建远程连接失败 情 阅读全文

posted @ 2024-04-04 14:14 王景迁 阅读(116) 评论(0) 推荐(0)

MySQL问题 GROUP_CONCAT截断
摘要:问题现象 CREATE DATABASE test CHARACTER SET utf8; USE test; CREATE TABLE user ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name varchar(500), sex tinyint 阅读全文

posted @ 2024-04-04 14:06 王景迁 阅读(72) 评论(0) 推荐(0)

MySQL问题 SQL优先级导致执行错误
摘要:问题现象 select * from x where a = 1 or b = 2 and c = 3执行结果不符合预期。 问题分析 and优先级高于or,相当于select * from x where a = 1 or (b = 2 and c = 3)。 解决问题 改成select * fro 阅读全文

posted @ 2024-04-04 14:01 王景迁 阅读(19) 评论(0) 推荐(0)

MySQL问题 tinyint返回true
摘要:问题现象 字段类型是tinyint(1),数据库中值是100,但是从数据库中返回的值是Java Boolean true,即整型数据在MySQL中返回结果是true。 问题分析 tinyint占用1个字节,范围是-128~127,代表bool值时,0表示False,非0表示True。如果存储真实值, 阅读全文

posted @ 2024-04-04 13:57 王景迁 阅读(92) 评论(0) 推荐(0)

vxlan和geneve异同点
摘要:相同点 vxlan和geneve都走udp。报文头vni都占用24位。 不同点 vxlan头固定长度8个字节。 geneve头由固定长度8个字节和Variable Length Options可变长的0-252个字节组成。相比于vxlan,有了可变长字节之后,geneve可扩展性更强。 kube-o 阅读全文

posted @ 2024-04-04 10:38 王景迁 阅读(320) 评论(0) 推荐(0)

操作kubeconfig
摘要:使用kubeconfig优先级顺序 1. --kubeconfig参数2. $KUBECONFIG环境变量3. ${HOME}/.kube/config文件 查看kubeconfig内容 kubectl config view --raw 合并多个kubeconfig mv ~/.kube/conf 阅读全文

posted @ 2024-04-04 09:58 王景迁 阅读(43) 评论(0) 推荐(0)

tcp gso和gro
摘要:开关 查看是否开启gsoethtool -k ens33 | grep generic-segmentation-offload 查看是否开启groethtool -k ens33 | grep generic-receive-offload 作用 mss含义是,最大分段大小,即tcp data字节 阅读全文

posted @ 2024-04-04 09:14 王景迁 阅读(395) 评论(0) 推荐(0)

expect scp传输文件
摘要:set user "root" set password "root" set host "192.168.0.112" set timeout 10 spawn scp a $user@$host:/root expect { "*(yes/no)?" { send "yes\r" exp_con 阅读全文

posted @ 2024-04-02 22:43 王景迁 阅读(36) 评论(0) 推荐(0)

expect远程登录节点执行命令
摘要:set user "root" set password "root" set host "192.168.0.112" set timeout 10 spawn ssh $user@$host expect { "*(yes/no)?" { send "yes\r" exp_continue } 阅读全文

posted @ 2024-04-02 22:07 王景迁 阅读(47) 评论(0) 推荐(0)

ip头dscp字段
摘要:字段 ip头dscp字段,一般值是0,占用6位bit,表示服务质量。dscp+cu构成tos服务类型。 参考资料 https://www.rfc-editor.org/rfc/rfc2474 阅读全文

posted @ 2024-04-01 21:56 王景迁 阅读(222) 评论(0) 推荐(0)

导航