You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kubernetes中永久解决alertmanager-operated服务9093端口占用问题

问题根因

你手动修改alertmanager-operated Service资源后被自动回滚,是因为该服务由kube-prometheus-stack内置的Prometheus Operator管控,Operator的调和(reconcile)循环会持续监听Alertmanager自定义资源(CR)的配置,自动修正运行时资源与预期配置不符的部分,你看到的随机回滚实际是调和循环被触发后的正常行为,直接修改运行时资源的方式无法持久化配置,必须在chart的配置层修改。

永久修改端口的操作步骤
  • 第一步:编辑你安装kube-prometheus-stack所用的自定义values.yaml文件,新增以下配置段,将示例中的9094替换为你需要使用的目标端口:
alertmanager:
  alertmanagerSpec:
    # 配置Service暴露的web端口
    ports:
      web:
        port: 9094
        targetPort: 9094
    # 修改Alertmanager容器本身的监听端口
    containers:
    - name: alertmanager
      args:
      - --config.file=/etc/alertmanager/config/alertmanager.yaml
      - --storage.path=/alertmanager
      - --data.retention=120h
      - --cluster.listen-address=[$(POD_IP)]:9094
      - --web.listen-address=:9094
      - --web.route-prefix=/

说明:以上为Alertmanager默认启动参数,仅调整--web.listen-address中的端口即可,其余参数无特殊需求不要修改,避免服务启动异常

  • 第二步:执行helm upgrade命令更新已安装的release,使配置生效:
    helm upgrade -f <你的自定义values文件路径> <你的kube-prometheus-stack release名称> prometheus-community/kube-prometheus-stack --version 19.2.3
  • 第三步:验证配置生效
    执行kubectl get svc alertmanager-operated -n <你的监控组件所在命名空间>,确认端口列表已显示为你设置的目标端口;再检查Alertmanager Pod运行状态,确认没有端口冲突报错、服务可正常访问即可。
注意事项
  • 如果你没有使用自定义values文件安装chart,可以先执行helm get values <release名称> -n <命名空间> > custom-values.yaml导出当前使用的配置,再基于导出的文件修改。
  • 如果你是独立部署的Prometheus Operator,未使用kube-prometheus-stack的helm包,直接修改对应命名空间下的Alertmanager CR配置即可,配置字段和上述values中的alertmanagerSpec字段完全一致。

内容的提问来源于stack exchange,提问作者DeirdreRodgers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:06:09