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

为何Mimir Gateway Ingress资源无法创建?

问题分析与解决思路

核心问题定位

你当前使用的Mimir/GEM网关Helm配置里,gateway.ingress字段是用于创建传统Ingress资源的,而非Kubernetes Gateway API资源。这就是为什么你期望生成Gateway相关资源但无任何输出的原因——该Helm Chart默认不支持直接通过现有gateway配置块创建Gateway API资源。

解决方案步骤

1. 确认Helm Chart版本与Gateway API支持

首先检查你使用的Mimir/GEM Helm Chart是否支持Kubernetes Gateway API:

  • 若使用的是官方Grafana Mimir Chart(非企业版),需确认版本是否在v5.0.0及以上(部分版本开始引入Gateway API支持)。
  • 企业版GEM网关需参考对应版本的文档,确认是否提供Gateway API配置字段。

2. 调整配置以启用Gateway API

如果Chart支持Gateway API,需修改配置,替换原gateway.ingress块为Gateway API相关配置(不同Chart的字段可能有差异,以下为通用示例):

gateway:
  enabledNonEnterprise: true
  replicas: 1
  # 注释或删除原ingress配置块
  # ingress:
  #   enabled: true
  #   ...
  # 添加Gateway API配置
  gatewayApi:
    enabled: true
    nameOverride: mimir-gateway
    hosts:
      - host: mimir-distributor.neu.internal.dev.(companyname).com
        paths:
          - path: /api/v1/push
            pathType: Prefix
    tls:
      - secretName: mimir-distributor-tls
        hosts:
          - mimir-distributor.neu.internal.dev.(companyname).com

3. 确保集群已安装Gateway API CRDs

Kubernetes Gateway API需要提前部署对应的自定义资源定义(CRDs),可从Kubernetes Gateway API项目的官方发布页面获取对应版本的标准安装YAML文件,执行以下命令完成部署:

kubectl apply -f <path-to-standard-install.yaml>

4. 验证资源生成

重新部署Helm Chart:

helm upgrade --install mimir <chart-name> -f your-config.yaml

然后检查Gateway、HTTPRoute等资源是否生成:

kubectl get gateways
kubectl get httproutes

5. 兼容传统Ingress的过渡方案

如果当前Chart不支持Gateway API,可暂时保留传统Ingress配置,同时手动创建Gateway API资源指向nginx服务:

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: mimir-gateway
spec:
  gatewayClassName: nginx  # 需确保集群中有对应的GatewayClass
  listeners:
  - name: https
    port: 443
    protocol: HTTPS
    tls:
      mode: Terminate
      certificateRefs:
      - name: mimir-distributor-tls
  - name: http
    port: 80
    protocol: HTTP
    allowedRoutes:
      namespaces:
        from: Same

---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: mimir-push-route
spec:
  parentRefs:
  - name: mimir-gateway
  hostnames:
  - mimir-distributor.neu.internal.dev.(companyname).com
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /api/v1/push
    backendRefs:
    - name: mimir-nginx  # 对应nginx服务名称
      port: 80

关键注意点

  • 确认gatewayClassName与集群中已安装的Gateway Controller匹配(如nginx-ingress-controller需安装Gateway API适配组件)。
  • 已存在的TLS Secret需与Gateway资源在同一命名空间,或配置跨命名空间引用权限。

内容的提问来源于stack exchange,提问作者Przemysław Doczkal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:32:15