management · 平台管理服务

management 是 platform 类目下的一个微服务,镜像来自 ghcr.io/yldm-tech/management,对外暴露 HTTP 8080 端口并提供 /health/live/health/ready/metrics 端点。从配置看,它带有 JWT 签发/刷新(JWT_SECRET / JWT_EXPIRES_IN / JWT_REFRESH_EXPIRES_IN)和数据库管理员凭据(DB_ADMIN_USER / DB_ADMIN_PASSWORD,来自共享路径 yldm/database),数据落在 MySQL(库名 yldm_management),会话与发布订阅走 Redis,并通过 Consul 做服务注册。具体业务语义 manifest 未给出,以上为可验证的技术事实。镜像 tag 由 argocd-image-updater 按 semver 写回 kustomization,不要手动钉版本。

部署形态

  • Name
    命名空间
    Description
    platform(kustomization 设 namespace: platformnamePrefix: platform-,故活动对象名为 platform-management-*
  • Name
    工作负载
    Description
    Deployment
  • Name
    镜像 / 版本
    Description
    ghcr.io/yldm-tech/management:2.3.1(kustomization images: 写回目标)
  • Name
    副本数
    Description
    2(kustomization replicas: 与 deployment replicas 均为 2),revisionHistoryLimit: 2
  • Name
    滚动策略
    Description
    maxUnavailable: 0maxSurge: 1,更新期间不减少可用副本
  • Name
    调度
    Description
    nodeSelector: workload=app(worker2/worker4);priorityClassName: production-medium;按 app=management 标签做主机级 podAntiAffinity(preferred,weight 100,topologyKey kubernetes.io/hostname
  • Name
    端口
    Description
    容器 8080,命名 http
  • Name
    资源
    Description
    requests cpu 50m / memory 64Mi,limits cpu 200m / memory 256Mi
  • Name
    健康检查
    Description
    liveness GET /health/live(initialDelay 30s,period 10s);readiness GET /health/ready(initialDelay 15s,period 5s,timeout 5s)
  • Name
    存储
    Description
    无 PVC,配置以 ConfigMap 卷只读挂载

配置与依赖

容器以 CONFIG_FILE=configs/services/management.yaml 读取配置,该文件来自 management-config ConfigMap,挂载到 /root/configs/services/management.yaml(subPath);另有一个集群共享的 base-config ConfigMap 只读挂载到 /root/configs/basemanagement.yaml 继承 base/production.yaml 并覆盖特定字段:database.database${DB_NAME:yldm_management}redis.db${REDIS_DB:4}、tracing service_nameyldm-management、pubsub 前缀 yldm:management(pubsub redis db ${REDIS_PUBSUB_DB:1},死信键 yldm:management:deadletter)。kustomization 通过 reloader.stakater.com/auto: "true" 注解让 reloader 在 ConfigMap/Secret 变更时自动滚动 Deployment。

运行环境固定为生产:ENV / ENVIRONMENTproductionSERVER_MODE=releaseSWAGGER_AUTO_GEN=falseSERVER_PORT=8080SERVER_NAME=management。服务注册开启 Consul:CONSUL_ENABLED=trueCONSUL_ADDR=consul.consul.svc.cluster.local:8500

所有密钥来自 ExternalSecret management-db-secret(ClusterSecretStore vault-backend,刷新间隔 1h),合成出独立的 Secret prod-management-db-secret(实现数据库凭证隔离,见 deployment 注释),随后被 deployment 以 secretKeyRef 注入:

来源 Vault 路径 (remoteRef.key)注入的键
yldm/production/managementdb_host/port/name/user/password、redis_host/port/password/db/pubsub_db、jwt_secret/expires_in/refresh_expires_in
yldm/databaseDB_ADMIN_USER、DB_ADMIN_PASSWORD(共享数据库管理员凭据)

访问与监控

Service management 为默认 ClusterIP,port: 80 转发到容器 targetPort: 8080(命名 http),仅集群内访问;本仓库未给该服务配置 Ingress。

ServiceMonitor managementapp=management 选择,从 http 端口每 30s 抓取 /metrics,并通过 relabel 把 pod / namespace / app 标签分别映射为 pod / namespace / service

PrometheusRule management(组 management.rules,interval 30s)覆盖:Pod 掉线(ManagementPodDown,up==0 持续 1m,critical)、副本不足(ManagementInsufficientPods,运行副本 <1 持续 2m,critical)、HTTP 5xx 错误率(warning >3% / critical >5%)、P95 延迟(warning >0.5s / critical >1s)、频繁重启(ManagementPodRestarting,warning)、CPU 与内存使用率 >80%(均 warning,持续 10m)。

伸缩与可用性:HPA management-hpa 目标 Deployment managementminReplicas: 2 / maxReplicas: 5,按 CPU 利用率 70% 与内存利用率 80% 扩缩;VPA management-vpaupdateMode: "Off"(仅给建议不自动改),容器资源建议区间 cpu 25m–500m、memory 32Mi–512Mi;PDB managementmaxUnavailable: 1,保证节点排空时至少留 1 个副本。

返回 platform 总览

评论