微服务集群从 Vault Agent 切换到 ESO,核心在于平滑过渡与权限收敛。通过 Raft 热升级结合内置 PKI 开启 TLS、以 CEL 策略防范配置越权,配合双轨比对与分批灰度,安全完成数十个服务的 Sidecar 替换。
Posts for: #kubernetes
Argo CD 从 label 换成 annotation 跟踪资源:复制资源被 prune、63 字节上限,以及切换后要显式同步
Argo CD 3.0 起默认用 annotation 跟踪资源。kind 上的对比显示:label 方式会 prune 掉带同名 label 的副本,应用名超过 63 字节同步失败;切换后每个应用都要显式同步一次,否则会留下孤儿资源。
AWS EKS 从 VPC CNI 迁移到 Cilium eBPF 独立 ENI 模式
在 AWS EKS 集群上将默认 VPC CNI 迁移至 Cilium Standalone ENI 模式并开启 kubeProxyReplacement。梳理双 CNI 调度门禁、Nitro AL2023 网卡探测、节点单台滚动置换与出站策略加固等关键步骤。
K8s 网络策略与出站控制:云原生 CNI、Calico、出网代理和 Cilium 怎么选
标准 Kubernetes NetworkPolicy 能拦住 Pod 访问私网网段与云主机元数据,但管不了动态 IP 的外部域名和跨云策略统一。对比云厂商原生 CNI、Calico、出网代理与 Cilium 的优缺点后,按场景给出各自的适用边界与落地方式。
Vault Agent Injector 的 admission webhook 机制
Vault Agent Injector 是一个 mutating admission webhook,只在 pod 创建时改写定义。改了默认资源要重启 pod,injector 不可用时 pod 照常创建却没有密钥,都出自这一点。
用 Trivy Operator 持续扫描 homelab 集群的镜像
两个 K3s 集群里大多是第三方镜像,镜像不动也会冒出新 CVE。Trivy Operator 每天重扫并接进 Prometheus 告警,日常要按 CVE ID 分诊,能升级就升级,升不了带证据豁免,并用报告数对工作负载数确认扫描没有静默失败。
K8s 应用从 Vault 取密钥:Agent sidecar、init-only、VSO、ESO 和 CSI 怎么选
Vault Agent 的 init 和 sidecar 默认各申请 250m CPU,在一个非生产集群里占了一半以上的 CPU requests,实际几乎不用。按 DevSecOps 的要求比较五种接法后,先只保留 init,再换成和生产共用接口的 ESO。
环境分支换成主干开发:制品晋级、feature flag、预览环境和分阶段迁移
qa、staging、main 各对应一个环境时,修复要在分支间来回 cherry-pick,各环境跑的也不是同一个镜像。DORA 2022 年的报告把主干开发的收益和门禁、自动回滚这类配套规则绑在一起,迁移因此从立门禁开始,分三个阶段停掉环境分支。
EKS 上多个服务共用一个 ALB
AWS Load Balancer Controller 默认一个 Ingress 一个 ALB。共用 ALB 有三种做法:IngressGroup、TargetGroupBinding,以及 v3.0.0 起 GA 的 Gateway API。
Pod 短名称解析和 ndots:5 的查询放大
Pod 里的短名称靠 resolv.conf 的 search 域和 ndots:5 补全,外部域名要先拼上每个后缀各查一遍:kind 里解析一次 api.github.com 发了 8 个查询,带上 EKS 节点的后缀是 10 个。