1 个人信息
- 姓名:xiaoqing
- 联系方式: xiaoqingnb (at) gmail.com
- 个人网站:https://midbai.com
2 个人介绍
5年kubernetes运维和开发工作,且有5年的专家级运维经验。熟悉kubernetes源码(kubelet 90%的代码、常见的各种controller、scheduler部分组件),operator开发。
热爱开源,参与社区贡献,比如cilium、autoscaler(vpa)、karmada。
同时kubernetes生态相关的开源项目的源码也有研究,比如cni,kube-state-metrices、crane、koordinator、containerd、cadvisor、VPA,controller-runtime、descheduler等项目
热爱互联网,喜欢研究新技术,不断突破自己舒适区。
3 工作经历
3.1 2020.10–2024.3 | 上海微盟 | kubernetes工程师
负责自建kubernetes集群的维护和周边生态组件的开发
- 设计开发基于腾讯云弹性网卡的underlay CNI插件,解决原网络插件基于节点分配子网,集群节点数量受限于子网大小,且能够跟云资源整合。架构上基于operator和各个节点上agent模式,容器通信基于策略路由实现。
- kubernetes集群降本–基于vpa算法进行资源推荐功能的开发,与上层开发平台配合完成的容器资源推荐功能。包括开发相关的operator、功能测试上线、推荐效果的可视化、推荐算法的优化改进。最终为kubernetes集群节省了15%的成本。
- 设计开发真实负载感知的descheduler节点均衡插件,解决节点过热的问题,提升应用的稳定性。
- 落地karmada作为集群冷备方案里的资源同步工具,并对karmada存在的问题(比如名字长度超出限制、字段不存在不能修改等问题)进行修复,以适合做为同步工具。
- 负责集群的运维工作,包括20多套集群的管理、稳定性优化、节点扩缩容、监控系统瓶颈解决(从thanos迁移到victoriaMetrics)、报警处理等。
3.2 2019.03–2020.06 | 上海触乐科技有限公司 | kubernetes工程师
负责从0开始落地k8s,包括集群搭建,协助业务迁移,平台功能设计
- 前期进行容器使用现状调研(使用docker进行部署)、了解痛点(没有自动扩容和优雅发布功能)。遵循"研发只需关心应用的配置、应用状态和资源使用情况"的原则,进行架构和发布系统功能设计。
- 搭建和设计平台底层的k8s架构、包括混合云、高可用、容量规划、监控方案,并接入现有的系统–日志收集系统和prometheus监控系统、nginx接入层。
- 按照“尽量减少对现有系统的改动”的思想下设计业务迁移方案、并推进业务迁移到kubernete上。使用流量复制对部署在kubernetes应用进行测试,然后再切一部分流量进行灰度测试。
- 开发集群event记录组件将集群事件接入到日志系统,并修复cni kube-router在apiserver挂掉时候–pod网络不通bug,patch已合并到社区中。
- 上线后接入500个pod和20多个node,提升服务可用性, 从有损发布到平滑发布,快速扩缩容, 提高发布效率, 从平均半个小时,降低到2分钟。
3.3 2018.05–2019.01 | 哔哩哔哩 | 运维工程师
负责直播业务相关的运维工作
- 推进业务迁移到k8s的paas平台,业务资源的容量管理–通过超分cpu达到提高利用率、通过划分 多个资源池并通过nodeAffinity达到某一资源池不足时,临时使用其他资源池
- 解决上paas之后的应用出现的性能问题,通过修改应用参数和pod的配置和kubelet的配置的不断 的压测,最终php程序在k8s中耗时从20毫秒降低到5ms左右
- 排查和解决业务测试、线上的出现的各种问题(比如redis慢、nginx重试导致请求量放大)
- 参与故障的排查与解决,并进行故障的复盘报告的编写、并追踪后续的优化
3.4 2016.05–2018.05 | 全民TV | 运维工程师
负责整个公司的运维工作
- 服务器操作系统进行规范化和标准化。
- 负责各个系统的搭建和运维和优化,比如nginx、redis、发布系统、ELK。
- 设计并实现gitlab ci +docker测试环境的持续部署,提升运维自动化。
3.5 2014.07–2016.04 | 上海网映文化传播有限公司 | 运维工程师
- 对服务器进行整顿,并进行运维的标准化工作。
- 负责版本上线发布,变更,故障解决,问题发现。
- 编写脚本,解决日常需要,备份数据库等。