跳到主要内容

网络端口与访问边界

本文列出默认部署的服务端口和网络访问要求。生产环境应根据实际网关、Ingress、防火墙和 NetworkPolicy 重新收敛访问边界。

默认服务

组件Service默认类型端口说明
disaster-webdisaster-webNodePort80 -> 30087控制台入口
disaster-serverdisaster-serverClusterIP30081REST API、Watch API、认证、统计
webhookdisaster-operator-webhook-serviceClusterIP443 -> 9443CRD admission webhook
operator metricsdisaster-operator-controller-manager-metrics-serviceClusterIP8443controller-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