运维 Operator 部署
本指南覆盖 SemanticRouter 资源的日常运维。安装和首次部署见使用 Kubernetes Operator 部署。
读取协调状态
kubectl get semanticrouter <name> -o wide
kubectl describe semanticrouter <name>
kubectl get semanticrouter <name> -o jsonpath='{.status.conditions}'
将 metadata.generation、status.observedGeneration、状态条件和就绪副本一起查看。控制器在运行,并不表示最新的自定义资源 generation 已成功应用。
协调停滞时,检查其拥有的工作负载:
kubectl get deployment,pod,service,configmap,pvc \
-l app.kubernetes.io/instance=<name>
kubectl logs -n semantic-router-operator-system \
deployment/semantic-router-operator-controller-manager
安全更新
- 导出当前自定义资源,并记录已部署的镜像引用。
- 审阅 CRD 和发行说明中的 schema 变更。
- 在非生产环境应用新的自定义资源或 Operator 版本。
- 等待 observed generation 和就绪副本收敛。
- 通过每个重要入口发送真实请求。
- 若就绪状态或路由回退,回滚自定义资源或镜像引用。
固定镜像标签或 digest。除非这些变更有意耦合并已一起测试,不要在一次上线中同时更改 Operator、Router 镜像、路由策略、模型池和存储后端。
扩缩容与可用性
通过 spec.replicas 设置固定副本,或启用 HPA adapter:
spec:
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 70
使用节点亲和性、容忍、拓扑打散或反亲和,以及单独管理的 PodDisruptionBudget,以匹配可用性目标。学习或其他副本本地可变状态可能需要额外设计;不要假定增加副本就能让每个有状态路由功能 保持一致。
指标与追踪
Router 在已配置的 metrics Service 端口(默认 9190)暴露 Prometheus 指标:
kubectl port-forward service/<name> 9190:9190
curl -sS http://localhost:9190/metrics | head
用部署所用的标签配置 ServiceMonitor 或等效采集器。通过 spec.config.observability 启用 OpenTelemetry,并将追踪发送到 Router 命名空间可达的 collector。保持追踪采样和采集属性与请求数据的敏感度匹配。