从 helm 图表为 AWS 网络负载均衡器配置粘性会话

Configure sticky session for AWS Network Load Balancer from helm chart

我正在编写用于将 Web 服务部署到 eks 的 helm chart。 我需要为 pods 运行 Web 应用程序部署负载均衡器。 我正在创建部署网络负载均衡器的服务

apiVersion: v1
kind: Service
metadata:
  name: my-service
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
spec:
  selector:
    app: "MyApp"
  type: LoadBalancer
  ports:
  - name: http
    port: {{ .Values.app.port }}
    protocol: TCP
    targetPort: {{ .Values.app.port }}

我需要此应用程序的粘性会话。

我曾尝试将 sessionAffinity: ClientIP 添加到图表中,但失败了。不会创建 LoadBalancer。

以其他方式创建 LoadBalancer,但目标组中的粘性会话仍然禁用。

通过 helm chart 为 NLB 配置粘性会话的正确方法是什么?

由于 AWS 功能序列,这是不可能的。

此功能属于 NLB 的 TargetGroup。

当您 create LoadBalancer 时,您无法编辑目标组的属性。

TargetGroup创建后属性可以是modified.

Kubernetes does not implement 更改此标志的任何注释。

结论:创建 LoadBalancer 后 运行 用于更改粘性会话标志的 awscli 脚本。