Мне нужно иметь возможность использовать одно имя хоста для направления путей к различным службам.Я пробовал несколько входов, несколько путей ... Я в итоге, если не повезло, что пути идут к одному и тому же бэкэнд-сервису.
apiVersion: v1
kind: Service
metadata:
name: appname.var
labels:
app.kubernetes.io/name: appname.var
helm.sh/chart: {{ template "helmchart.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
ports:
- port: 80
targetPort: 8080
selector:
app.kubernetes.io/name: appname.var
app.kubernetes.io/instance: {{ .Release.Name }}
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress.var
annotations:
kubernetes.io/ingress.class: alb
ingress.kubernetes.io/force-ssl-redirect: 'true'
alb.ingress.kubernetes.io/certificate-arn: "cert.arn"
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/backend-protocol: HTTP
alb.ingress.kubernetes.io/healthcheck-protocol: HTTP
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80, "HTTPS": 443}]'
alb.ingress.kubernetes.io/security-groups: api_alb
alb.ingress.kubernetes.io/target-group-attributes: stickiness.enabled=true,stickiness.lb_cookie.duration_seconds=604800
labels:
app: appname.var
spec:
type: ClusterIP
rules:
- host: api.domainname
http:
paths:
- path: /widgets/*
backend:
serviceName: appname-widgets
servicePort: 80
- path: /*
backend:
serviceName: appname
servicePort: 80
Этот же код используется для создания "appname "service и" appname-widgets ", включая вход (уникальное имя для входов).
Запросы направляются к одной или другой службе, вероятно, потому что для обоих существуют одинаковые пути.Любые идеи о том, как сделать эту работу?Мне нужно / widgets / *, чтобы перейти только к сервису виджетов, а все остальное (/ *) - к обычному сервису API.