在 K8S 环境中构建基于 Python Flask 的 WebSocket 推送架构

业务上需要搭建一个能推送消息的架构,现有服务端基于 Python Flask 构建。下面记录代码实现和 K8S + HAProxy 两层负载均衡下的会话保持方案。 代码部分服务端服务端需要集成 socketio,参考 python-socketio 官方示例。记得把 async_mode 改成 gevent。 前端前端测试页面,需要替换 <Server IP>: 1234567891011121314151617181920212223242526272829303132333...

阅读全文

查看 kubectl config 文件中的权限信息

调试 K8S 问题时,手里往往只有一份 kubeconfig,却不知道当前用户到底有哪些权限。其实证书里就藏着答案——把 client-certificate-data 或 .crt 文件用 OpenSSL 解析一下,就能拿到 Group 和 User,再去集群里查对应的 RoleBinding 即可。 解析证书把 config 文件中的 client-certificate-data 内容,或者 .crt 文件拿出来,用 OpenSSL 解析: 12345# 直接处理 base64 内容...

阅读全文

用sed替换掉特定字符串后的指定内容

工作中遇到了这么一个需求:有一段没有格式的 JSON 字符串,需要把其中的 key 为 name 的值改成 new-webhook-config,用 sed 可以完成这个工作。 原始内容1{"apiVersion":"admissionregistration.k8s.io/v1beta1","kind":"MutatingWebhookConfiguration","metadata&qu...

阅读全文

调用Jira API统计一段时间每个账户内ticket被resolved的数量

Jira 是不能分组统计的,只能在 dashboard 里用二维表格统计,但是如果查询语句是 status changed to resolved by,统计表格里是不能显示出来 resolved by 这个用户名的。 之前同事手动做了特别多的查询,然后把这些查询放到 Confluence 里进行统计,所以就想用 Jira API 分账户统计一下。 完整脚本1234567891011121314151617181920212223242526272829303132333435363738...

阅读全文

学习Python的列表生成器以及Map-Reduce

最近写了很多接口,需要反复处理 json 数据,抽离数据,重组格式。 花时间研究了一些 Python 的列表生成式,以及更高级的 Map/Reduce,并给大家做了一次分享,记录一下分享过程中写下的代码。 示例数据123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172...

阅读全文

第一次在github里的高星项目中merge code, 激动!

在做手里的项目的过程中,用到了 Cobra,过程中需要使用动态的 help 信息,目前 Cobra 本身还不支持,所以手工加了一些额外代码才实现。 但是在读 Cobra 源码的过程中,发现只需要改动几个地方,就可以更轻松地实现,于是提交了一个 PR,跟 Owner 沟通了几次,顺利被 merge 了。 很惊喜,Mark 一下:https://github.com/spf13/cobra/pull/1760

阅读全文

通过docker registry的文件夹获取到所有的镜像

工作需要获取 docker registry 里所有的镜像和 tag,但是系统在磁盘被占满的情况下出现无法工作的情况,无法通过 docker registry 的 API 去获取。 所以尝试通过 registry 的文件夹目录结构中提取想要的结果,最后证明可行。 列出所有镜像:tag123export docker_registry_dir=/opt/bcmt/storage/docker-registry/ # docker registry 的安装目录。cd ${docker...

阅读全文

Cobra支持动态自定义flag

用 Go 实现了一个 binary,这个 binary 会发送 API 请求到服务端,服务端完成对 K8S 环境的部署工作。 由于后端进行了大量封装,并且参数非常多,所以有了一个想法,具体的要求如下: 支持自定义 flag 列表 help 信息支持展示自定义的 flag 列表 列表信息来自于一个专门的 API 基于这些需求,查询了很多文档后,没有找到成功的例子,经过一下午的尝试,最后实现了预期的需求,分享一下。回头准备写一篇 post 给 Cobra。 在 Cobra 的 GitHu...

阅读全文

在GO项目中使用Uber-zap日志框架

现在需要把一个日志框架加入到新的项目中,对比了一下 Go 语言里的几个日志框架,最后发现 zap 是个不错的选择。 https://github.com/uber-go/zap 官网也把 zap 和其他框架做了一些对比,看起来挺不错。 不过在集成到 Cobra 里的过程中遇到了一点点小坑,记录一下。 日志初始化代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849...

阅读全文


Powered by Hexo and Hexo-theme-hiker

Copyright © 2012 - 2026 tiaobug.com All Rights Reserved.

鲁ICP备2024124237号-1