2022总结--技术侧
2022年终总结早就写了一部分,趁这两天头疼休息,把一些有意思的点,按照时间顺序整理到博客。
3款vpn客户端的容器化
- 解决客户端共享的问题
- 解决硬件绑定问题
- 解决验证码依赖
- 避免路由冲突
客户使用的vpn服务商各不相同;有些客户的vpn客户端再第一次登录后会绑定当前硬件;有些客户端除了用户名密码,还强制短信验证码登录。 随着客户越来越多,遇到路由冲突的可能性也会越来越高。
容器化之后,客户端全部扔到一起,每个容器只需要暴露一个端口做代理即可,浏览和登录都可以利用这个端口。
这里配合云厂商的数据热迁移,只用一台低配服务器就可以搞定。除了降本外,容器化客户端这里有个有意思的点,是如何解决只输入一次短信验证码?我的解决方案是通过tcp代理转到ssh 共享的session上。这里跟tcp转unix socket还有一些差异,还需要做一点特殊转换,利用转换就可以在其他机器上通过这个tcp代理登录了。转换细节后面再整理一篇博文介绍。
tcl脚本
- 支持proxy
- 支持relay
- 支持password
- 支持identity file
大概5年前也简单学习了tcl的语法,整理了一个脚本发布在公司wiki上。后面整理到博客了,见一份登录脚本。 这次升级主要是配合vpn容器化,再加上重新整理,proxy/relay/password/identity file抽成单独的方法,并支持这些方式组合登录。留个坑,后面再发一遍博文单独介绍。
categraf 几个大的整合
- log agent
- mtail
- prometheus agent
n9e-helm
n9e的helm repo,现在还有几个原生的限制问题还在解决中。
K8s监控
整理了K8s组件的指标和最佳实践,也做了一次的技术分享直播。
chrome容器化
- chrome镜像
- chromedp 截图
容器化chrome是为了解决客户环境差异的问题,测试3.10内核及以上都能跑。这里主要是涉及IM的指令机器人,利用chromedp截图。里面涉及的技术点包括
- 指令解析,要支持command、args、flag
- 动态元素的截取
- 群机器人,还要标识清图片与指令的对应关系,markdown内嵌图片/水印
- 多个IM的适配
其中动态元素截图,又涉及动态元素渲染完成的时机,可视区(viewport)大小计算和可视区之外的截图。
IM机器人
- debian11 + wine7.0的容器化基础镜像
- IM安装到容器中
- 支持vnc,也支持novnc(浏览器)
这个项目也是我第一次尝试linux容器中运行windows应用。
2022年是接触开源社区最多的一年,在社区也认识了一些有意思的人, merge了一些有意思的PR。