12 2023 档案

kubelet和flannel交互流程
摘要:kubelet与cni插件交互流程 kubelet调用cni走二进制接口,与cri和csi走rpc不同。cri plugin创建pod net ns->cni plugin创建容器网卡并分配ip->cri plugin创建pause容器并加入pod net ns flannel cni插件工作流程 阅读全文

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

限流算法
摘要:计数器 在固定时间间隔内,处理请求有上限,请求超出部分丢弃。 package main import ( "sync" "time" klog "k8s.io/klog/v2" ) type counterRateLimiter struct { m sync.Mutex startPartTime 阅读全文

posted @ 2023-12-30 20:52 王景迁 阅读(39) 评论(0) 推荐(0)

kube-apiserver开启审计
摘要:k8s v1.19.0 请求处理的多个阶段 阶段 含义 RequestReceived 收到请求 ResponseStarted 已发送响应头,但未发送响应正文。 ResponseComplete 完成响应正文,流程结束。 Panic 内部处理出错,未完成请求。 审核级别level 级别 含义 No 阅读全文

posted @ 2023-12-30 08:59 王景迁 阅读(88) 评论(0) 推荐(0)

k8s限速队列不通过Get方法判断队列是否关闭
摘要:go.mod module use-k8s-queue go 1.19 require k8s.io/client-go v0.28.2 require ( github.com/go-logr/logr v1.2.4 // indirect golang.org/x/time v0.3.0 // 阅读全文

posted @ 2023-12-28 21:06 王景迁 阅读(28) 评论(0) 推荐(0)

Etcd启动失败,报错bind cannot assign requested address
摘要:节点上没有该ip kubeadm配置正确ip,重装k8s环境。 阅读全文

posted @ 2023-12-27 08:55 王景迁 阅读(277) 评论(0) 推荐(0)

pod requests.cpu作用
摘要:1. kube-scheduler调度时参考requests.cpu。2. cpu不足时,requests.cpu越大,cpu.shares越大,越容易抢占cpu。 阅读全文

posted @ 2023-12-27 08:46 王景迁 阅读(37) 评论(0) 推荐(0)

C语言 不定长数组
摘要:#include <stdio.h> #include <malloc.h> struct student { int age; }; struct data { int len; // 不占用空间 struct student students[0]; }; int main() { struct 阅读全文

posted @ 2023-12-19 21:15 王景迁 阅读(119) 评论(0) 推荐(0)

C语言 函数数组
摘要:#include <stdio.h> // float代表函数返回值 // my_func_name代表函数地址 // int代表函数参数 typedef float (*my_func_name)(int); float a(int i) { return 1.0 + i; } float b(i 阅读全文

posted @ 2023-12-19 20:42 王景迁 阅读(26) 评论(0) 推荐(0)

k8s labels过滤实现
摘要:k8s v1.19.0 透过kube-apiserver缓存,从etcd中根据label来获取数据。 staging\src\k8s.io\apiserver\pkg\registry\generic\registry\store.goList方法 staging\src\k8s.io\apiser 阅读全文

posted @ 2023-12-17 15:33 王景迁 阅读(36) 评论(0) 推荐(0)

Linux 如何回收僵尸进程
摘要:fork创建子进程后,子进程退出时,父进程使用wait或waitpid回收子进程资源。如果父进程先于子进程结束,那么子进程成为孤儿进程,由systemd进程完成回收。如果子进程先于父进程结束,父进程没有回收,那么子进程变成僵尸进程。僵尸进程是已经死亡的进程,无法通过kill命令杀死,可以通过杀死父进 阅读全文

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

Linux 进程状态
摘要:进程状态 top里面S列表示进程状态。 R 正在运行或者等待运行(Running或Runnable),进程在CPU的就绪队列中。 D 硬件交互导致的不可中断睡眠状态(Uninterruptible Sleep),进程正在与硬件交互。 Z 僵尸进程(Zombie),虽然进程已经结束,但是父进程没有回收 阅读全文

posted @ 2023-12-16 11:00 王景迁 阅读(83) 评论(0) 推荐(0)

C语言 避免重复定义宏
摘要:#ifndef _A_ #define _A_ 1 #endif 阅读全文

posted @ 2023-12-14 13:15 王景迁 阅读(57) 评论(0) 推荐(0)

C语言 init和exit
摘要:#include <stdio.h> #define __init __attribute__((constructor)) #define __exit __attribute__((destructor)) // 文件加载时初始化 void __init my_init(void) { prin 阅读全文

posted @ 2023-12-13 08:58 王景迁 阅读(36) 评论(0) 推荐(0)

C语言 实现双向链表
摘要:#include <stdio.h> #define LIST_HEAD_INIT(name) { &(name), &(name) } #define list_for_each_entry(obj, head, list) for (obj = (typeof(*obj) *)((char *) 阅读全文

posted @ 2023-12-12 22:13 王景迁 阅读(32) 评论(0) 推荐(0)

dpip增加ip
摘要:dpip addr add 10.11.12.13/24 dev dpdk0 src/inetaddr.cifa_entry_add函数 判断dpdk0上是否已经存在该ip param->addr是10.11.12.13 dpdk0上不存在该ip后,大页内存上分配 添加路由到链表 添加地址到链表 0 阅读全文

posted @ 2023-12-12 09:07 王景迁 阅读(36) 评论(0) 推荐(0)

C语言 使用bool
摘要:方法一:引入stdbool.h #include <stdio.h> #include <stdbool.h> int main() { bool f = false; if (!f) { printf("f is false\n"); } return 0; } 输出结果是f is false 相 阅读全文

posted @ 2023-12-11 22:02 王景迁 阅读(130) 评论(0) 推荐(0)

验证controller处理事件时不因对象变化而变化
摘要:crd_controller走到断点后更新或者删除fruit,从Lister里面取到的对象内容保持不变。 阅读全文

posted @ 2023-12-11 09:05 王景迁 阅读(22) 评论(0) 推荐(0)

实现k8s自定义controller
摘要:controller通过cluster ip:443 + https(非grpc)访问kube-apiserver。kube-apiserver通过127.0.0.1:2379 + grpc访问etcd。无论是kube-scheduler,还是kube-controller-manager,都是通过 阅读全文

posted @ 2023-12-11 08:50 王景迁 阅读(170) 评论(0) 推荐(0)

C语言 命令行接收参数
摘要:#include <stdio.h> int main(int argc, char* argv[]) { int i; while (argc-- > 0) { printf("%s\n", *argv++); } return 0; } 阅读全文

posted @ 2023-12-09 15:20 王景迁 阅读(36) 评论(0) 推荐(0)

导航