网络端口与访问边界
本文列出默认部署的服务端口和网络访问要求。生产环境应根据实际网关、Ingress、防火墙和 NetworkPolicy 重新收敛访问边界。
默认服务
| 组件 | Service | 默认类型 | 端口 | 说明 |
|---|---|---|---|---|
disaster-web | disaster-web | NodePort | 80 -> 30087 | 控制台入口 |
disaster-server | disaster-server | ClusterIP | 30081 | REST API、Watch API、认证、统计 |
| webhook | disaster-operator-webhook-service | ClusterIP | 443 -> 9443 | CRD admission webhook |
| operator metrics | disaster-operator-controller-manager-metrics-service | ClusterIP | 8443 | controller-runtime metrics,受 RBAC 保护 |
管理集群出站访问
Operator 和 Server 需要访问:
- 源集群 Kubernetes API。
- 目标集群 Kubernetes API。
- 对象存储 endpoint。
- 镜像仓库。
- 如使用 cert-manager,访问集群内 cert-manager 相关 API。
业务集群出站访问
参与容灾的业务集群需要访问:
- 对象存储 endpoint。
- 镜像仓库。
- Velero 插件依赖的云厂商 API 或存储 API。
暴露建议
disaster-web可以通过 Ingress、网关或专用运维入口暴露。disaster-server不建议直接以 NodePort 或 LoadBalancer 暴露到集群外。/openapi.yaml、/openapi.json、/swagger/如果在生产启用,应放在受控网络内。- WebSocket/Watch 路由需要网关支持长连接或流式响应。
NetworkPolicy 建议
如集群启用 NetworkPolicy,建议:
- 只允许
disaster-web或网关访问disaster-server:30081。 - 只允许 Kubernetes API server 访问 webhook service。
- 只允许监控命名空间访问 operator metrics service。
- 允许 operator/server 到远端 Kubernetes API 和对象存储 endpoint 的出站流量。
验证命令
kubectl -n disaster-system get svc
kubectl -n disaster-system get endpoints
kubectl -n disaster-system port-forward svc/disaster-web 8087:80
curl -I http://127.0.0.1:8087