calico如何引入eBPF
Leaderelection机制
前言
最近在开发的ingress-controller组件,副本是有状态服务。每个副本将收到的ingress事件进行解析,然后与slb同步。如果同时多个副本运行,势必会造成对slb访问的混乱。因此,同一时刻,只能有一个副本真正在工作。但是,还需要多副本部署方式来保证高可用。
为了解决这个问题,本组件参考kube-scheduler、kube-controller-manager等组件的实现方式,也利用到client-go/tools/leaderelection的选主机制,保证只有leader处于工作状态,并定时进行leader的重新选举或续租。当leader挂掉之后,从其他节点选举新的leader以保证组件正常工作。
kubernetes 调度器扩展
理解 K8S 的设计精髓之 List-Watch机制和Informer模块
eBPF介绍
etcd重置
etcd数据库异常
nginx日志时间输出
nginx 日志打印响应时间 request_time 和 upstream_response_time
设置log_format,添加request_time,$upstream_response_time,位置随意
1 | log_format main '"$request_time" "$upstream_response_time" $remote_addr - $remote_user [$time_local] "$request" ' |