随笔分类 -  k8s

上一页 1 2 3 4 5 6 7 8 下一页

关闭kubelet驱逐
摘要:/etc/sysconfig/kubelet末尾追加内容--eviction-hard=imagefs.available<1%,memory.available<1Mi,nodefs.available<1%,nodefs.inodesFree<1%重启kubelet 阅读全文

posted @ 2024-02-09 15:33 王景迁 阅读(51) 评论(0) 推荐(0)

手写实现cni插件
摘要:k8s v1.19.0 mycni配置文件 cat >> /etc/cni/net.d/mycni.json << EOF { "cniVersion": "0.1.0", "name": "mycni", "type": "mycni" } EOF type对应/opt/cni/bin目录下二进制 阅读全文

posted @ 2024-02-08 22:06 王景迁 阅读(80) 评论(0) 推荐(0)

为什么kube-controller-manager启动后https长连接数量是2
摘要:k8s v1.19.0 单节点集群2条长连接 编译二进制并调试 cd cmd/kube-controller-manager && go build # vscode launch.json { "name": "Launch", "type": "go", "request": "launch", 阅读全文

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

为什么kube-scheduler启动后https长连接数量是2
摘要:k8s v1.19.0 单节点集群2条长连接 编译二进制并调试 cd cmd/kube-scheduler && go build # vscode launch.json { "name": "Launch", "type": "go", "request": "launch", "mode": 阅读全文

posted @ 2024-02-06 21:34 王景迁 阅读(37) 评论(0) 推荐(0)

client-go http trace分析耗时
摘要:klog.InitFlags(nil) flag.Parse() defer klog.Flush() cfg, err := clientcmd.BuildConfigFromFlags("", "/root/.kube/config") if err != nil { klog.Fatalf(" 阅读全文

posted @ 2024-02-05 18:39 王景迁 阅读(91) 评论(0) 推荐(0)

informer增加过滤标签
摘要:labelOptions := informers.WithTweakListOptions(func(opts *metav1.ListOptions) { opts.LabelSelector = "a=b" }) informerFactory := informers.NewSharedIn 阅读全文

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

client-go list性能提升
摘要:k8s v1.19.0 staging/src/k8s.io/apiserver/pkg/storage/cacher/cacher.go List方法(client-go Lister的List方法在找不到时不会报错not found) staging/src/k8s.io/apiserver/p 阅读全文

posted @ 2024-01-30 22:21 王景迁 阅读(109) 评论(0) 推荐(0)

informer cache自定义索引
摘要:informer cache默认通过namespace/name作为key把对象保存到map中。条件查询时一般通过labels.Selector来过滤,但这需要遍历所有元素,informer cache可以类似于MySQL那样建立索引,来提高查询速度。 // map根据指定的key来给对象分类 // 阅读全文

posted @ 2024-01-30 21:26 王景迁 阅读(84) 评论(0) 推荐(0)

多个cni插件共存时kubelet调用哪个
摘要:k8s v1.19.0 默认情况下,k8s不支持多个cni插件混用。在/etc/cni/net.d存在多个cni配置时,dockershim只会加载按字母顺序排序的第1个插件。 cmd/kubelet/app/options/container_runtime.goNewContainerRunti 阅读全文

posted @ 2024-01-28 10:46 王景迁 阅读(98) 评论(0) 推荐(0)

client-go令牌桶限流配置
摘要:func addListWatchCfgAndClient() { cfg, err := clientcmd.BuildConfigFromFlags("", "/root/.kube/config") if err != nil { klog.Fatalf("Error building kub 阅读全文

posted @ 2024-01-25 13:32 王景迁 阅读(127) 评论(0) 推荐(0)

client-go异常场景分析
摘要:k8s v1.19.0 场景1:同步时连不上kube-apiserver会一直阻塞 WaitForCacheSync一直阻塞,直到成功或者控制器停止。 W0115 13:01:55.329881 18339 reflector.go:535] pkg/mod/k8s.io/client-go@v0. 阅读全文

posted @ 2024-01-16 23:10 王景迁 阅读(333) 评论(0) 推荐(0)

client-go连接数
摘要:单节点k8s集群 v1.19.0 服务创建的https连接数量 client-go用于访问kube-apiserver,可以list/watch k8s资源。 组件名称 访问kube-apiserver方式 单个实例的https连接数 kube-scheduler 本机ip 2 kube-contr 阅读全文

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

lumberjack转储klog日志
摘要:go.mod module lumberjack go 1.19 require ( gopkg.in/natefinch/lumberjack.v2 v2.2.1 k8s.io/klog/v2 v2.100.1 ) require github.com/go-logr/logr v1.2.0 // 阅读全文

posted @ 2024-01-06 10:44 王景迁 阅读(208) 评论(0) 推荐(0)

kube-apiserver默认开启8080非安全端口
摘要:k8s v1.19.0 pkg\kubeapiserver\options\serving.goNewInsecureServingOptions函数 启动参数insecure-port设为0,不再开启非安全端口。staging\src\k8s.io\apiserver\pkg\server\opt 阅读全文

posted @ 2024-01-01 18:43 王景迁 阅读(130) 评论(0) 推荐(0)

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 王景迁 阅读(91) 评论(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 王景迁 阅读(35) 评论(0) 推荐(0)

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

posted @ 2023-12-30 08:59 王景迁 阅读(83) 评论(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 王景迁 阅读(27) 评论(0) 推荐(0)

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

posted @ 2023-12-27 08:46 王景迁 阅读(35) 评论(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 王景迁 阅读(34) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 下一页

导航