| .. | ||
| checker-networkpolicy.yaml | ||
| checker-patch.yaml | ||
| checker.yaml | ||
| config.yaml | ||
| controller-patch.yaml | ||
| controller-service.yaml | ||
| gateway-hpa-patch.yaml | ||
| gateway-patch.yaml | ||
| kustomization.yaml | ||
| README.md | ||
Kubernetes development mTLS overlay
该 Overlay 在 base 资源之上启用 Controller 控制面 mTLS,并启动一个固定身份的 Gateway 和 Checker。它只用于开发或预发布的单副本控制面验证,不是生产弹性身份方案。
Prepare certificates
先生成未提交的开发证书。输出目录必须为空;生成器的 controller 证书包含
DNS:controller,Overlay 中的客户端也只拨号 controller:8443。
./scripts/generate-local-controlplane-certs.ps1
kubectl apply -f deploy/kubernetes/base/namespace.yaml
将生成的三组证书写入 Kubernetes Secret。下面的命令可重复执行,只更新对应 Secret:
kubectl -n proxy-pool create secret generic proxy-pool-controlplane-server-tls `
--from-file=tls.crt=deploy/.control-plane-tls/controller/tls.crt `
--from-file=tls.key=deploy/.control-plane-tls/controller/tls.key `
--from-file=ca.crt=deploy/.control-plane-tls/controller/ca.crt `
--dry-run=client -o yaml | kubectl apply -f -
kubectl -n proxy-pool create secret generic proxy-pool-controlplane-gateway-tls `
--from-file=tls.crt=deploy/.control-plane-tls/gateway-a/tls.crt `
--from-file=tls.key=deploy/.control-plane-tls/gateway-a/tls.key `
--from-file=ca.crt=deploy/.control-plane-tls/gateway-a/ca.crt `
--dry-run=client -o yaml | kubectl apply -f -
kubectl -n proxy-pool create secret generic proxy-pool-controlplane-checker-tls `
--from-file=tls.crt=deploy/.control-plane-tls/checker-a/tls.crt `
--from-file=tls.key=deploy/.control-plane-tls/checker-a/tls.key `
--from-file=ca.crt=deploy/.control-plane-tls/checker-a/ca.crt `
--dry-run=client -o yaml | kubectl apply -f -
另行从私密配置系统创建 proxy-pool-secrets。可参考 base 目录的
secret.example.yaml,但不要把实际数据库、Redis、Provider 或 API 凭据写入 Git。
Deploy
kubectl apply -k deploy/kubernetes/overlays/development-mtls
kubectl -n proxy-pool rollout status deployment/proxy-controller --timeout=5m
kubectl -n proxy-pool rollout status deployment/proxy-gateway --timeout=5m
kubectl -n proxy-pool rollout status deployment/proxy-checker --timeout=5m
Overlay 的 Gateway 固定为 worker_id=gateway-a,Checker 固定为
checker_id=checker-a,并把 Gateway HPA 限制为 minReplicas=maxReplicas=1。
因此不得在此 Overlay 上增加副本数或放宽 HPA;重复使用同一 Worker 身份会破坏
session、ownership 和证书角色边界。
生产环境需要由工作负载身份系统为每个副本签发独立、可轮换的证书,并将该副本的
身份注入 worker_id、instance_id、Gateway Client TLS 或 Checker Client TLS。
应用会在每次新控制面 TLS 握手读取更新后的叶证书和信任根;已有 gRPC 流仍按原会话保留,
根轮换时先投放新旧根的重叠信任包,再按 PDB 滚动排空旧连接。