рдпрд╕ рд▓реЗрдЦрдорд╛, рдо рд╡реНрдпрдХреНрддрд┐рдЧрдд рддреНрд░реБрдЯрд┐ рдкреГрд╖реНрдард╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рд╕рдореНрдмрдиреНрдзрд┐рдд NGINX Ingress рдХреЛ рджреБрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ, рд╕рд╛рдереИ рддрд┐рдиреАрд╣рд░реВрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рд╕реАрдорд┐рддрддрд╛рд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╡рд░рд┐рдкрд░рд┐ рдХрд╛рдо рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛рд╣рд░реВ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред
1. рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмреНрдпрд╛рдХрдЗрдиреНрдб рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджреИ
рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, NGINX Ingress рд▓реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмреНрдпрд╛рдХрдЗрдиреНрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рд╕рдореНрдмрдиреНрдзрд┐рдд рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рдЬрдм рдЗрдиреНрдЧреНрд░реЗрд╕ рд╕реНрд░реЛрддрд╣рд░реВрдорд╛ рдирднрдПрдХреЛ рд╣реЛрд╕реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреЗ рдЗрдиреНрдЧреНрд░реЗрд╕ рдЕрдиреБрд░реЛрдз рдЧрд░реНрджрд╛, рд╣рд╛рдореАрд▓реЗ 404 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдбрдХреЛ рд╕рд╛рде рдирд┐рдореНрди рдкреГрд╖реНрда рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВ:
рдпрджреНрдпрдкрд┐, рдЕрдзрд┐рдХ рд░ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣рд╛рдореНрд░рд╛ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВ рдорд╛рдирдХ 404 рдХреЛ рд╕рдЯреНрдЯрд╛ рдХрд░реНрдкреЛрд░реЗрдЯ рд▓реЛрдЧреЛ рд░ рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдХреЛ рд╕рд╛рде рдЖрдлреНрдиреЛ рдкреГрд╖реНрда рджреЗрдЦрд╛рдЙрди рдЕрдиреБрд░реЛрдзрдХреЛ рд╕рд╛рде рдЖрдЙрдБрдЫрдиреНред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, NGINX Ingress рдЫ default-backend-service
ред рд╣рд╛рдореА рд╕рдорд╛рди рдирд╛рдордХреЛ рд╡рд┐рдХрд▓реНрдкрдорд╛ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рдврд╛рдБрдЪрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдкрд╛рд╕ рдЧрд░реНрдЫреМрдВ namespace/servicename
ред рд╕реЗрд╡рд╛рдХреЛ рдкреЛрд░реНрдЯ реореж рд╣реБрдиреБрдкрд░реНрдЫред
рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рдЖрд╡реЗрджрди (рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯ) рд░ рд╕реЗрд╡рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
рдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рд╕рд╛рдиреЛ рджреГрд╖реНрдЯрд╛рдиреНрдд рдЫ:
~$ curl -i -XGET http://sadsdasdas.kube-cloud.my/
HTTP/1.1 404 Not Found
Date: Mon, 11 Mar 2019 05:38:15 GMT
Content-Type: */*
Transfer-Encoding: chunked
Connection: keep-alive
<span>The page you're looking for could not be found.</span>
рддреНрдпрд╕реИрд▓реЗ рд╕рдмреИ рдбреЛрдореЗрдирд╣рд░реВ рдЬреБрди рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ YAML рдорд╛рд░реНрдлрдд рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди kind: Ingress
, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмреНрдпрд╛рдХрдЗрдиреНрдбрдорд╛ рдкрд░реНрдиреБрд╣реЛрд╕реНред рдорд╛рдерд┐рдХреЛ рд╕реВрдЪреАрдорд╛, рдпреЛ рдбреЛрдореЗрди рднрдпреЛ sadsdasdas
.
2. рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмреНрдпрд╛рдХрдЗрдиреНрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдПрдкрдорд╛ HTTP рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрджреИ
рдЕрд░реНрдХреЛ рдЕрд╡рд╕реНрдерд╛ рднрдиреЗрдХреЛ HTTP рддреНрд░реБрдЯрд┐рд╣рд░реВ (404, 500, 502...) рдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд╣реЛ рдЬрд╕рд▓реЗ рддреНрдпрд╕реНрддрд╛ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджреИрди (рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕реБрдиреНрджрд░ рдкреГрд╖реНрдард╣рд░реВ рдЙрддреНрдкрдиреНрди рд╣реБрдБрджреИрдирдиреН)ред рдпреЛ рдзреЗрд░реИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рдкреГрд╖реНрдард╣рд░реВ рд╕реЗрд╡рд╛ рдЧрд░реНрдиреЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдЗрдЪреНрдЫрд╛рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдкрдирд┐ рд╣реБрди рд╕рдХреНрдЫред
рд╕рд░реНрднрд░ рд╕рд╛рдЗрдбрдорд╛ рдпреЛ рдХреЗрд╕ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╣рд╛рдореАрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдЫ:
- рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмреНрдпрд╛рдХрдЗрдиреНрдбрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЕрдиреБрдЪреНрдЫреЗрджрдмрд╛рдЯ рдорд╛рдерд┐рдХрд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН;
- nginx-ingress рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрдиреНрдлрд┐рдЧрдореНрдпрд╛рдкрдорд╛ рдХреБрдЮреНрдЬреА рдердкреНрдиреБрд╣реЛрд╕реН
custom-http-errors
, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдореВрд▓реНрдп рд╕рдВрдЧ404,503
(рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рддреНрд░реБрдЯрд┐ рдХреЛрдбрд╣рд░реВрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ рдЬреБрди рдирдпрд╛рдБ рдирд┐рдпрдорд▓реЗ рдХрднрд░ рдЧрд░реЗрдХреЛ рдЫ)ред
рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рднрдПрдХреЛ рдЫ: рдЬрдм рдХреНрд▓рд╛рдЗрдиреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб 404 рд╡рд╛ 503 рдХреЛ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ, рдЕрдиреБрд░реЛрдз рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдирдпрд╛рдБ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмреНрдпрд╛рдХрдЗрдиреНрдбрдорд╛ рдкреБрди: рдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реБрдиреЗрдЫред
рдпрджреНрдпрдкрд┐, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмреНрдпрд╛рдХрдЗрдиреНрдб рд░ рдЕрдиреБрдХреВрд▓рди-http-рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрд╛, рддрдкрд╛рдИрдВрд▓реЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕реБрд╡рд┐рдзрд╛рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
!!! Important The custom backend is expected to return the correct HTTP status code instead of 200. NGINX does not change the response from the custom default backend.
рддрдереНрдп рдпреЛ рд╣реЛ рдХрд┐ рдЬрдм рдЕрдиреБрд░реЛрдз рдкреБрди: рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЧрд░рд┐рдиреНрдЫ, рд╣реЗрдбрд░рд╣рд░реВрд▓реЗ рдЕрдШрд┐рд▓реНрд▓реЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб рд░ рдердк рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд╕рд╛рде рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ (рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреВрд░реНрдг рд╕реВрдЪреА рдЙрдкрд▓рдмреНрдз рдЫред
рдпрд╕рдХреЛ рдорддрд▓рдм рддрдкрд╛рдИ рдЖрдлреИрд▓реЗ рдЧрд░реНрдиреБрдкрд░реНрдЫ рд╕рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдбрдХреЛ рдЦреНрдпрд╛рд▓ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН.
рдмрд┐рднрд┐рдиреНрди рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд╣рд░реВрдорд╛ рдлрд░рдХ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмреНрдпрд╛рдХрдЗрдиреНрдбрд╣рд░реВ рдЫрдиреН
рд╕рдорд╛рдзрд╛рди рд╕рдореНрдкреВрд░реНрдг рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд╣реЛрдЗрди, рддрд░ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫ рднрдиреЗрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдЗрдиреНрдЧреНрд░реЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдБрдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдорд┐рд▓реНрдЫ рднрдиреЗ 0.23 рд╡рд╛ рдорд╛рдерд┐, рдиреЗрдЯрд┐рдн рдЗрдиреНрдЧреНрд░реЗрд╕ рдПрдиреЛрдЯреЗрд╕рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
- рд╣рд╛рдореА рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ
default-backend
рд▓рд╛рдЧрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡реЗрд╢рдПрдиреЛрдЯреЗрд╢рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ ; - рд╣рд╛рдореА рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ
custom-http-errors
рд▓рд╛рдЧрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡реЗрд╢рдПрдиреЛрдЯреЗрд╢рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ .
рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдЗрдиреНрдЧреНрд░реЗрд╕ рд╕реНрд░реЛрдд рдпреЛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ .Chart.Name }}-app2
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/custom-http-errors: "404,502"
nginx.ingress.kubernetes.io/default-backend: error-pages
spec:
tls:
- hosts:
- app2.example.com
secretName: wildcard-tls
rules:
- host: app2.example.com
http:
paths:
- path: /
backend:
serviceName: {{ .Chart.Name }}-app2
servicePort: 80
рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рддреНрд░реБрдЯрд┐рд╣рд░реВ 404 рд░ 502 рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рд╣реЗрдбрд░рд╣рд░реВрд╕рдБрдЧ рддреНрд░реБрдЯрд┐-рдкреГрд╖реНрда рд╕реЗрд╡рд╛рдорд╛ рдкреБрди: рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЧрд░рд┐рдиреЗрдЫред
╨Т Ingress рдХреЛ рдЕрдШрд┐рд▓реНрд▓реЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рдерд┐рдПрди (
рдкреНрд░рд╡реЗрд╢ <0.23: рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдпреЛ рд╡рд┐рдХрд▓реНрдк рд╕рд░рд▓ рдЫред рдпрд╕рдХреЛ рдкреГрд╖реНрдард╣рд░реВ рд╕реЗрд╡рд╛ рдЧрд░реНрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореАрд╕рдБрдЧ рдирд┐рдпрдорд┐рдд HTML рдЫ, рдЬрд╕рд▓рд╛рдИ рд╣реЗрдбрд░рд╣рд░реВ рд╣реЗрд░реНрдиреЗ рд░ рд╕рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдбрд╣рд░реВ рдХрд╕рд░реА рдлрд░реНрдХрд╛рдЙрдиреЗ рднрдиреЗрд░ рдерд╛рд╣рд╛ рдЫреИрдиред рдпрд╕реНрддреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ url рдмрд╛рдЯ Ingress рд╕рдВрдЧ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ /error-pages
, рд░ рд╕реВрдЪреАрдорд╛ ws
рдлрд┐рд░реНрддрд╛ HTML рд╣реБрдиреЗрдЫред
YAML рдорд╛ рдЪрд┐рддреНрд░рдг:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ .Chart.Name }}-app2
annotations:
kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/server-snippet: |
proxy_intercept_errors on;
error_page 500 501 502 503 504 @error_pages;
location @error_pages {
rewrite ^ /error-pages/other/index.html break;
proxy_pass http://error-pages.prod.svc.cluster.local;
}
spec:
tls:
- hosts:
- app2.example.com
secretName: wildcard-tls
rules:
- host: app2.example.com
http:
paths:
- path: /
backend:
serviceName: {{ .Chart.Name }}-app2
servicePort: 80
рдпреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реЗрд╡рд╛ рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА рдкреНрд░рдХрд╛рд░рдХреЛ рд╣реБрдиреБрдкрд░реНрдЫред
рдПрдХреИ рд╕рдордпрдорд╛, рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдЬрд╣рд╛рдБ рд╣рд╛рдореА рддреНрд░реБрдЯрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреЗрдЫреМрдВ, Ingress рдорд╛ рд╣рд╛рдореА рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реАрдХреЛ рд╕рд╛рде рд╕рд░реНрднрд░-рд╕реНрдирд┐рдкреЗрдЯ рд╡рд╛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди-рд╕реНрдирд┐рдкреЗрдЯ рдердкреНрдЫреМрдВ:
nginx.ingress.kubernetes.io /server-snippet: |
proxy_intercept_errors on;
error_page 500 501 502 503 504 @error_pages;
location @error_pages {
rewrite ^ /error-pages/ws/index.html break;
proxy_pass http://error-pages.prod.svc.cluster.local;
}
рдкреНрд░рд╡реЗрд╢ <0.23: рджреЛрд╕реНрд░реЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг
рд╣реЗрдбрд░рд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╕рдХреНрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рдХрд▓реНрдк... рд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпреЛ рдЕрдиреБрдХреВрд▓рди-http-рддреНрд░реБрдЯрд┐рд╣рд░реВрдмрд╛рдЯ рдЙрдзрд╛рд░рд┐рдПрдХреЛ рдЕрдЭ рд╕рд╣реА рддрд░рд┐рдХрд╛ рд╣реЛред рдпрд╕рд▓рд╛рдИ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирд╛рд▓реЗ (рдкреНрд░рддрд┐рд▓рд┐рдкрд┐) рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред
рдЪрд░рдгрд╣рд░реВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЫрдиреНред рд╣рд╛рдореА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ
nginx.ingress.kubernetes.io /server-snippet: |
proxy_intercept_errors off;
error_page 404 = @custom_404;
error_page 503 = @custom_503;
location @custom_404 {
internal;
proxy_intercept_errors off;
proxy_set_header X-Code 404;
proxy_set_header X-Format $http_accept;
proxy_set_header X-Original-URI $request_uri;
proxy_set_header X-Namespace $namespace;
proxy_set_header X-Ingress-Name $ingress_name;
proxy_set_header X-Service-Name $service_name;
proxy_set_header X-Service-Port $service_port;
proxy_set_header Host $best_http_host;
rewrite ^ /error-pages/ws/index.html break;
proxy_pass http://error-pages.prod.svc.cluster.local;
}
location @custom_503 {
internal;
proxy_intercept_errors off;
proxy_set_header X-Code 503;
proxy_set_header X-Format $http_accept;
proxy_set_header X-Original-URI $request_uri;
proxy_set_header X-Namespace $namespace;
proxy_set_header X-Ingress-Name $ingress_name;
proxy_set_header X-Service-Name $service_name;
proxy_set_header X-Service-Port $service_port;
proxy_set_header Host $best_http_host;
rewrite ^ /error-pages/ws/index.html break;
proxy_pass http://error-pages.prod.svc.cluster.local;
}
рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд╣рд╛рдореАрд▓реЗ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рдЪрд╛рд╣рдиреЗ рдкреНрд░рддреНрдпреЗрдХ рддреНрд░реБрдЯрд┐рдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рд╕реНрдерд╛рди рдмрдирд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЬрд╣рд╛рдБ рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рд╣реЗрдбрд░рд╣рд░реВ рдШреБрд╕рд╛рдЗрдиреЗрдЫ, рдЬрд╕реНрддреИ "рдиреЗрдЯрд┐рдн" рдПрдХрдорд╛ред
PS
K8s рд╕реБрдЭрд╛рд╡ рд░ рдЪрд╛рд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛рдмрд╛рдЯ рдЕрдиреНрдп:
- ┬л
рд╣реЗрд▓реНрдо реи рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирдорд╛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рд╕реНрд░реЛрддрд╣рд░реВ рд╣рд╕реНрддрд╛рдиреНрддрд░рдг рдЧрд░реНрджреИ ┬╗; - ┬л
рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рдиреЛрдб рдЖрд╡рдВрдЯрди рд░ рд▓реЛрдбрд╣рд░реВ рдмрд╛рд░реЗ ┬╗; - ┬л
dev рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ ┬╗; - ┬л
рдареВрд▓рд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмреБрдЯрд╕реНрдЯреНрд░реНрдпрд╛рдкрдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрдБрджреИ "ред
рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН:
- ┬л
Istio рд╕рдВрдЧ microservices рдорд╛ рдлрд░реНрдХрдиреБрд╣реЛрд╕реНред рднрд╛рдЧ 1 ┬╗; - ┬л
[рдЪрд┐рддреНрд░рд┐рдд] Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдЧрд╛рдЗрдбред рднрд╛рдЧ рей "ред
рд╕реНрд░реЛрдд: www.habr.com