对比 ArgoCD 两种应用组织方式——App-of-Apps 和 ApplicationSet——在三个真实项目里的实践。按场景(单人多集群异构、团队多环境同构、混合需求)给出取舍建议和决策框架。
Posts for: #kubernetes
压测中副本数怎么都上不去:一次 ArgoCD selfHeal 与 HPA 抢 spec.replicas 的排查
压测时副本数在 3 和 5 之间反复抖动,查到是 ArgoCD selfHeal 在和 HPA 抢 spec.replicas。记录这次排查的证据链、修复方式,以及引出的几个扩缩容问题。
Intermittent 413s Behind Spring Cloud Gateway: Anatomy of an h2c Upgrade Trap
Intermittent 413s caused by h2c upgrade + JDK HttpClient + Tomcat maxSavePostSize: root cause, troubleshooting playbook, and a deterministic kind reproduction.
K8s Service 访问链路:域名如何解析到 ClusterIP,再转发到 Pod
我顺着一个 Pod DNS 排查短视频,把 K8s Service 网络链路重新整理了一遍:DNS 解析、ClusterIP 到 Pod IP 的 DNAT、EndpointSlice、负载均衡,以及 1.36 时代 iptables/IPVS/nftables/eBPF 的取舍。
mirrord 用户授权的 GitOps 化:按用户维护 RBAC 清单
整理如何将 mirrord 开发者授权管理从脚本式操作转换为 GitOps 模式:通过维护 RoleBinding 和 ClusterRoleBinding 的声明式 YAML,实现可审计、可回滚、默认拒绝的权限控制。
VS Code 跑 mirrord 撞上 WebSocket 403:从 IDE 报错追到 K8s impersonation 的鉴权链路
把 mirrord OSS 接入 VS Code 时撞上一个 WebSocket 403,最后追到 K8s impersonation 的两条 authorization 链路 — 记录排查、原理和最小修复。
给 mirrord 开发者按 namespace 签发 kubeconfig
记录我如何用 kind、Kubernetes CSR 和 RoleBinding,为 mirrord OSS 做一套按 namespace 授权的开发者接入 demo。
过一遍 kubernetes-best-practices 仓库,顺手补上新特性
以 diegolnasc/kubernetes-best-practices 仓库为蓝本过一遍 K8s 生产实践,顺手补上 Gateway API、ValidatingAdmissionPolicy、原生 Sidecar 这些仓库还没覆盖的新特性。
Feature Flag 的升级顺序:先 backend 还是先 frontend?
在 OpenFeature + flagd 的全链路场景下,给一个需要前后端共享语义的新 flag 做灰度发布,应该先升级后端还是先升级前端?本文通过实际案例对比两种升级路径的风险,说明为什么先 backend 兼容升级、再升级 frontend 通常会少踩一些坑。
Java 微服务在 K8s 上的运行时基线(2026):镜像、探针、滚动与可观测
整理 Java 25 + Spring Boot 3.5 微服务上 Kubernetes 时的一份运行时基线:镜像怎么打、探针怎么配、优雅停机怎么对齐、滚动与回滚怎么做、可观测性怎么接入。重点是把现状和差距一起写出来。