Helm安装Grafana配置ALB Ingress出现default-http-backend端点未找到报错
排查步骤
一、ExternalDNS无法生成对应端点问题
- 优先修正配置错误:当前你的Ingress配置中
hosts字段为空,ExternalDNS优先读取Ingress的hosts字段获取需要同步的域名,建议直接将注解中的域名填入该字段:
同时检查hosts: - "charts.training-XX.XXXXXX.cloud"external-dns.alpha.kubernetes.io/hostname注解内容无多余空格、格式正确。 - 检查Ingress状态:执行
kubectl get ingress <grafana-ingress名称> -n <命名空间>,确认ADDRESS列已经返回ALB的公网地址。如果Ingress没有正常获取地址,说明ALB Ingress Controller本身配置异常,优先排查ALB控制器的日志和权限。 - 检查ExternalDNS运行状态:执行
kubectl logs <external-dns-pod名称> -n <external-dns所在命名空间>,搜索目标域名查看同步日志,常见报错原因包括:ExternalDNS关联的IAM角色没有Route53域名管理权限、目标域名所属的公有域不在ExternalDNS的托管范围内、域名格式不符合要求。 - 检查RBAC权限:确认ExternalDNS的ClusterRole配置中开放了
ingresses资源的get、list、watch权限。
二、default-http-backend不存在报错问题
- 该报错属于ALB Ingress Controller的默认全局检查项,不会影响你已经配置了明确路径规则的Grafana路由,如需消除报错可选择以下任意一种方案:
- 关闭ALB Ingress Controller的默认后端检查:在控制器的启动参数中添加
--disable-default-backend - 集群中部署一个默认的HTTP后端服务,用于匹配所有未明确声明路径的请求
- 关闭ALB Ingress Controller的默认后端检查:在控制器的启动参数中添加
- 额外注意当前你的配置中Grafana的Ingress路径为
/grafana/,需要同步修改Grafana的root_url配置为/%(protocol)s://%(domain)s/grafana/,避免访问时出现静态资源加载失败、路径跳转异常的问题。
额外优化建议
当前你的Ingress annotations使用非标准的对象写法且缩进混乱,建议调整为标准YAML键值对格式,避免Helm渲染时出现不可预期的错误:
annotations: external-dns.alpha.kubernetes.io/hostname: charts.training-XX.XXXXXX.cloud kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:eu-west-2:XXXXXXXXXX:certificate/XXXXXX-XXXXX-a72c-XXXXXXXXXX alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' alb.ingress.kubernetes.io/inbound-cidrs: XXX.XX.XX.XX/32
如果集群Kubernetes版本>=1.18,建议将kubernetes.io/ingress.class: alb注解替换为ingressClassName: alb字段,符合官方Ingress API规范。
内容的提问来源于stack exchange,提问作者user11931805
相关产品推荐
相关产品推荐

