Как я могу избежать разрыва соединения на AWS EKS? - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть простое одноступенчатое развертывание postgresql, работающее на AWS EKS (код здесь ). Я выставил модуль, используя балансировщик нагрузки.

kubectl get services/postgres-lb -o yaml

Это дает следующее:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-connection-draining-enabled: "false"
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
  creationTimestamp: 2019-04-23T02:36:54Z
  labels:
    app: postgres
  name: postgres-lb
  namespace: default
  resourceVersion: "1522157"
  selfLink: /api/v1/namespaces/default/services/postgres-lb
  uid: <HASHREMOVED?
spec:
  clusterIP: 10.100.94.170
  externalTrafficPolicy: Cluster
  ports:
  - nodePort: 32331
    port: 5434
    protocol: TCP
    targetPort: 5432
  selector:
    app: postgres
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - hostname: ...aaadz-example.elb.us-east-1.amazonaws.com

Это работает, и я могу получить доступ к модулю, как и ожидалось. Тем не менее, соединение с postgresql обрывается каждую минуту или около того, если оно не активно. Я вполне уверен, что по крайней мере некоторые балансировщики нагрузки AWS ведут себя так, чтобы «сливать соединения»; отсюда и примечание выше, чтобы НЕ сливать соединения. Тем не менее, я все еще вижу то же самое поведение разрыва соединений в режиме ожидания.

Какова лучшая практика, например, в AWS EKS для размещения базы данных, а затем для подключения ее единственного порта к Интернету? Поиски в Интернете выявили множество вариантов, но все они кажутся либо слишком сложными, либо не применимыми напрямую Я использовал GCE и обнаружил, что это намного проще в отношении сети и выставления портов, поэтому я чувствую, что упускаю что-то очевидное в AWS.

1 Ответ

4 голосов
/ 23 апреля 2019

Попробуйте установить аннотацию service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout на большее значение (по умолчанию это 60 секунд в AWS).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...