如何避免在AWS EKS上断开连接?

问题描述 投票:0回答:1

我在AWS EKS上运行了一个简单的单pod postgresql部署(代码here)。我使用负载平衡器暴露了pod。

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

这有效,我可以按预期访问pod。但是,如果不活动,与postgresql的连接似乎每分钟左右都会丢失。我很确定至少有一些AWS负载均衡器会以这种方式“消耗连接”;因此上面的注释不排出连接。但是,我仍然看到在空闲时丢弃连接的相同行为。

例如,AWS EKS用于托管数据库,然后将其单个端口暴露给互联网的最佳做法是什么?网络搜索已经出现了许多变化,但似乎都过于复杂或不直接适用。我使用GCE并发现它在网络和暴露端口方面要简单得多,所以我觉得我在AWS上遗漏了一些明显的东西。

postgresql amazon-web-services kubernetes
1个回答
4
投票

尝试将service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout注释设置为更大的值(默认情况下,它在AWS中为60秒)。

© www.soinside.com 2019 - 2024. All rights reserved.