AWS ALB Ingress同一主机多路径映射服务遇404问题
问题:AWS ALB Ingress部署前后端服务时Frontend出现404错误
部署环境与服务说明
- Frontend Service:允许外部主机访问,使用NodePort类型
- Backend Service:仅集群内部可访问,使用ClusterIP类型
问题现象
通过AWS ALB的Ingress部署后,访问Frontend Service时返回404 Not Found错误;若移除第二个Ingress资源,Frontend可正常访问,但无法连接Backend服务。
当前配置文件
ingress.yaml
{{- if .Values.ingress.enabled -}} {{- $fullName := include "metaflow-ui.fullname" . -}} {{- $svcPort := .Values.service.port -}} {{- $fullNameStatic := include "metaflow-ui.fullname-static" . -}} {{- $svcPortStatic := .Values.serviceStatic.port -}} --- apiVersion: extensions/v1beta1 kind: Ingress metadata: namespace: metaflow-ui name: {{ $fullName }} labels: {{- include "metaflow-ui.labels" . | nindent 4 }} {{- with .Values.ingress.annotations }} annotations: {{- toYaml . | nindent 4 }} alb.ingress.kubernetes.io/healthcheck-path: "/api" alb.ingress.kubernetes.io/success-codes: "200" {{- end }} spec: rules: - host: {{ .Values.externalDNS }} http: paths: - path: /api pathType: Prefix backend: serviceName: {{ $fullName }} servicePort: {{ $svcPort }} --- apiVersion: extensions/v1beta1 kind: Ingress metadata: namespace: metaflow-ui name: {{ $fullName }} labels: {{- include "metaflow-ui.labels" . | nindent 4 }} {{- with .Values.ingress.annotations }} annotations: {{- toYaml . | nindent 4 }} alb.ingress.kubernetes.io/healthcheck-path: "/" alb.ingress.kubernetes.io/success-codes: "200" {{- end }} spec: rules: - host: {{ .Values.externalDNS }} http: paths: - path: / pathType: Prefix backend: serviceName: {{ $fullNameStatic }} servicePort: {{ $svcPortStatic }} --- {{ end }}
values.yaml(Ingress注解配置)
ingress: enabled: true className: "" annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internal alb.ingress.kubernetes.io/group.name: metaflow-ui alb.ingress.kubernetes.io/security-groups: # removed alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' alb.ingress.kubernetes.io/certificate-arn: # removed alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
已尝试的解决方案
添加alb.ingress.kubernetes.io/group.name注解,尝试让单个AWS ALB共享多个Ingress资源,但未解决404问题;目前计划参考AWS官方的路径路由方案进行调整。
内容的提问来源于stack exchange,提问作者yudhiesh
相关产品推荐
相关产品推荐

