k8s 容器热替换/重启主进程 - gdb execve syscall 法 📅 2023年06月22日 · ☕ 8 分钟 k8s 环境下,在不停止或重启 container 的情况下,重启应用进程(pid:1),甚至重新加载运行新版本的应用。本文以 gdb 作为工具,调用 execve syscall,去实现这个目标。
k8s 容器热替换/重启主进程 - gdb exec 法 📅 2023年06月18日 · ☕ 6 分钟 k8s 环境下,在不停止或重启 container 的情况下,重启应用进程(pid:1),甚至重新加载运行新版本的应用。本文以 gdb 作为工具,调用应用容器自带的 libc 的 close & exec 法函数,去实现这个目标。
调试与观察 istio-proxy Envoy sidecar 的启动过程 📅 2023年06月07日 · ☕ 7 分钟 学习 Istio 下 Envoy sidecar 的初始化过程,有助于理解 Envoy 是如何构建起整个事件驱动和线程互动体系的。其中 Listener socket 事件监初始化是重点。而获取这个知识最直接的方法是 debug Envoy 启动初始化过程,这样可以直接观察运行状态的 Envoy 代码,而不是直接读无聊的 OOP 代码去猜现实行为。但要 debug sidecar 初始化有几道砍要过。本文记录了我通关打怪的过程。
调试 Istio 网格中运行的 Envoy sidecar C++ 代码 📅 2023年05月10日 · ☕ 5 分钟 调试在 Istio 网格中运行的 Envoy sidecar C++ 代码。 它有助于在代码级别深入研究 sidecar。 它使我们在解决 Istio 问题或编写更好的 EnvoyFilter 或 eBPF 跟踪程序时更有信心。 本文介绍如何使用 VSCode 和 lldb 调试 Envoy istio-proxy sidecar。
K8s CSI & ceph 构架图解,还有一些闲话 📅 2023年04月30日 · ☕ 5 分钟 云存储的学习困难,难于 K8s CSI 框架复杂性,再加上如 ceph 分布式存储的复杂性。本文试图用互动式图例,让读者串联起两个领域的知识点。从而对整个流程有一个总体的感知;避免盲目深入一个一个零散的知识点孤岛而迷路。
Envoy/Istio 连接生命周期与临界异常 —— 不知所谓的连接 REST 📅 2023年01月11日 · ☕ 20 分钟 说明 Envoy 连接控制相关参数作用。以及在临界异常情况下的细节逻辑。目标是如何减少连接异常而引起的服务访问失败,提高服务成功率。
图解 Istio & Envoy 请求处理流程、超时、熔断、指标监控 📅 2022年10月01日 · ☕ 6 分钟 要实现 Istio 网格节点故障快速恢复,需要深入理解其请求的处理流程。本文图解 Istio & Envoy 请求处理流程、超时、熔断、指标监控
好心分手 - Istio 网格节点故障快速恢复初探 📅 2022年09月25日 · ☕ 12 分钟 k8s + Istio 下,如果 worker node 断电或断网(网络分区),如何加速检测和断开负载流量。使用 keepalive/timeout 等方法,应对 TCP Half-Open