K8s应用调试技巧
注意: 谨慎使用本文所述的工具,尤其是不要直接修改生产环境数据,风险自负!!!
rancher只读账号也可以登录服务pod的终端,而能登录到pod里就可以访问生产环境的所有组件。
注意: 谨慎使用本文所述的工具,尤其是不要直接修改生产环境数据,风险自负!!!
rancher只读账号也可以登录服务pod的终端,而能登录到pod里就可以访问生产环境的所有组件。
k3s自带了containerd作为CRI实现,不过我们一般习惯上还是使用docker作为运行时。但是两者结合使用有一些坑,这里做一下记录。
不用containerd的主要原因是它的命令太难记,ctr/ctictl做的什么jb玩意儿。还有一个原因是,如果只想用容器不想用k8s,docker的功能是最完善的。
微软官方的跨平台GUI框架MAUI不支持linux,一般还是使用Avalonia,此外还有一个UNO Platform框架,对比可见此文.
有段时间没用Python写工程了,基本都是写脚本,最近接了个活帮忙搞个爬虫相关项目,需要更新一下技术栈,做个笔记。
fastapi, 其实还可以接着用flask,不过前者对asyncio支持更完善一些,顺便学一下新东西;至于django还是太重了,写单体估计有点用;sqlalchemy,最新的是2.0版本,已经支持asyncio;twisted早就过时了。自己写的话就:aiohttp做网络请求;dom解析:仍然是基于lxml的技术栈,主要还是xpath和css-selector来获取元素;Playwright代替了Selenium等古早的框架;yesCapture, 2Capture和穿云等;fastapi顾名思义,专注于提供API框架,不关心模版引擎、ORM之类的东西,但是自带了API文档(即swagger集成)。所以代码非常简单,不需要Django那套复杂的框架:
之前写Python的时候其实有接触过一些jinja2,不过没有怎么用过实际上。毕竟前后端分离之后,这些模板语言在web开发上用处并不大。不过ansible选用了它做渲染模板,所以还是需要深入学习一下。比较蛋疼的是,k8s这边因为都是golang生态,所以用的是go template,那就是另外一套东西了。
虽然iac(infracture as code)流行以来,新的技术栈层出不穷,但是一般都是面向k8s或者云服务商的。传统的部署还是用ansible这种仅依赖ssh的最简单。