Для корректной работы сервисов необходим внешний балансировщик нагрузки. Конкретная реализация балансировщика не влияет на работу приложения — может использоваться любой совместимый механизм.
Ниже приведён пример конфигурации Ingress-контроллера в среде Yandex Cloud Managed Service for Kubernetes. Стоит учитывать, что данный подход считается устаревшим (заменен на GWIN) и приведён исключительно в качестве примера.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api-ingress
namespace: timetta
annotations:
cert-manager.io/cluster-issuer: "letsencrypt"
nginx.ingress.kubernetes.io/proxy-body-size: "16m"
nginx.ingress.kubernetes.io/proxy-buffer-size: "64k"
nginx.ingress.kubernetes.io/proxy-buffers-number: "8"
nginx.ingress.kubernetes.io/proxy-read-timeout: "360"
nginx.ingress.kubernetes.io/proxy-send-timeout: "360"
spec:
ingressClassName: nginx
tls:
- hosts:
- app.your-domain
- api.your-domain
- auth.your-domain
- scheduler.your-domain
- web-socket.your-domain
secretName: api-timetta-tls
rules:
- host: api.your-domain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: api-service
port:
number: 80
- host: auth.your-domain
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: passport-service
port:
number: 80
- host: scheduler.your-domain
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: scheduler-service
port:
number: 80
- host: web-socket.your-domain
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web-socket-service
port:
number: 80
- host: reporting.timetta-on-prem.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: reporting-service
port:
number: 80
- host: app.your-domain
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: client-host-service
port:
number: 80
Перейти на русскую версию?