/images/avatar.png

撕开 Calico 架构:为什么现代 CNI 执着于推行“三权分立”的 Namespace 帝国?

现代版本的 Calico 不再把所有组件挤在 kube-system 中,而是通过 Tigera Operator 开辟了 tigera-operator、calico-system、calico-apiserver 三个独立 Namespace。本文用大白话逐层剖析这一"三权分立"设计:如何打破网络插件的部署死锁、如何实现管理面与数据面解耦、以及如何通过聚合 API 让 kubectl 原生管理 Calico 网络资源。

虚拟机 IP 没变,为什么桥接转换 NAT 模式却摧残了我的 K8s 集群?

虚拟机 IP 没有变化,仅将 VMware 网络模式从桥接切换为 NAT,K8s 集群的控制平面却彻底瘫痪。本文按"网络 → 运行时 → 静态 Pod → Kubelet"的顺序记录完整的排查与原地修复过程,包括证书更新、kubeconfig 重建、静态 Pod 刷新和镜像地址替换,并剖析网络模式变更导致集群瘫痪的根本原因。

【自动化构建】BAT 批处理系统梳理:从基础语法、进阶用法到 Go 交叉编译工程脚本落地

手动执行 Go 交叉编译重复性高、效率低,Windows BAT 批处理可以快速实现本地构建自动化。本文从一段实际编译脚本切入,从零讲解 BAT 基础语法(变量、注释、错误判断等)和工程常用进阶写法(路径获取、静默输出、错误码退出)。最后精简落地三套可直接复用的 Go 编译批处理模板,覆盖日常编译、多端构建与版本发布场景。

基于 Docker Compose 部署 MySQL 8.0 生产实践指南

本文基于 Kylin V10/CentOS/RHEL 系列 + Docker 25.0.0 + Compose v2.24.1 环境,完整介绍 MySQL 8.0 容器化的生产部署实践。内容包括 MySQL 客户端安装、标准目录规划、my.cnf 生产级配置、docker-compose.yml 编排(含健康检查、资源限制、日志轮转),以及验证部署、自动备份脚本和故障排查速查表,最终交付一套数据持久化、自动拉起、可追溯的生产级数据库实例。

Shell 脚本中最反直觉的陷阱:0 是 True,1 是 False

从 Python、Java 等语言转向 Shell 编程,最容易在 if 语句上栽跟头:Shell 的布尔逻辑与主流语言完全相反,退出码 0 表示成功(True),非 0 表示失败(False)。本文通过真实的部署脚本案例,拆解这一陷阱的底层原理、常见踩坑场景和正确心智模型。