У меня есть приложение с ресурсом Ingress, показанным ниже.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ $fullName }}-stateful
labels:
app: oxauth
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.org/ssl-services: "oxtrust"
nginx.ingress.kubernetes.io/app-root: "/identity"
nginx.ingress.kubernetes.io/affinity: "cookie"
nginx.ingress.kubernetes.io/session-cookie-name: "route"
nginx.ingress.kubernetes.io/session-cookie-hash: "sha1"
nginx.ingress.kubernetes.io/proxy-next-upstream: "error timeout invalid_header http_500 http_502 http_503 http_504"
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ . | quote }}
http:
paths:
- path: /identity
backend:
serviceName: oxtrust
servicePort: 8080
- path: /idp
backend:
serviceName: oxshibboleth
servicePort: 8080
- path: /passport
backend:
serviceName: oxpassport
servicePort: 8090
Я хотел бы перевести его в VirtualService
, который будет использоваться шлюзом Istio. Но как только я это сделаю, служба oxpassport
всегда возвращает ошибку 503
в журналах. Это означает, что развертывание не может быть достигнуто.
Ниже приведено определение Service
apiVersion: v1
kind: Service
metadata:
creationTimestamp: "2020-04-15T18:21:12Z"
labels:
app: oxpassport
app.kubernetes.io/instance: kk
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/version: 4.1.0_01
helm.sh/chart: oxpassport-1.0.0
name: oxpassport
namespace: test
spec:
clusterIP: 10.111.71.120
ports:
- name: tcp-oxpassport
port: 8090
protocol: TCP
targetPort: 8090
selector:
app: oxpassport
release: kk
type: ClusterIP
status:
loadBalancer: {}
И, наконец, VS
, который я пытаюсь использовать:
VirtualService
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: {{ include "istio.fullname" . }}-oxpassport
namespace: {{ .Release.Namespace }}
spec:
hosts:
- oxpassport.{{ .Release.Namespace }}.svc.cluster.local
gateways:
- {{ .Release.Name }}-global-gtw
http:
- match:
- uri:
prefix: /passport
rewrite:
uri: /identity
route:
- destination:
host: oxpassport.{{ .Release.Namespace }}.svc.cluster.local
port:
number: 8090
Gateway
фрагмент:
- port:
number: 8090
name: tcp-oxpassport
protocol: HTTP
hosts:
- oxpassport.{{ .Release.Namespace }}.svc.cluster.local
На что нужно обратить внимание:
Существует бэкэнд-приложение с этими ярлыками , И у него есть собственный VS, и он работает:
labels:
app: oxauth
Oxpassport имеет развертывание с метками
labels:
app: oxpassport
Я знаю, что это длинный пост, но он блокирует уже несколько дней. Если это возможно, пожалуйста, объясните.
Спасибо