We need a Kubernetes service that brings up an AWS Load Balancer that supports web-sockets, i.e. not the classic LB. Support for the AWS NLB is in Alpha state - but seems to work well.
The issue we have is with setting the Listener to be TLS and not TCP and attach the ACM SSL Certificate correctly - something that works well with the Classic LB
The annotations we have in the service.yml
are:
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: 'arn:aws:acm:{{ .Values.certificate.region }}:{{ .Values.certificate.aws_user_id }}:certificate/{{ .Values.certificate.id }}'
service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy: "ELBSecurityPolicy-TLS-1-2-2017-01"
service.beta.kubernetes.io/aws-load-balancer-type: "nlb
The result is:
| Listener ID | Security Policy | SSL Certificate | Default Action |
| --- | --- | --- | --- |
| TCP: 443 | N/A | N/A | Forward to: k8s|
Expected:
| Listener ID | Security Policy | SSL Certificate | Default Action |
| --- | --- | --- | --- |
| TLS: 443 | ELBSecurityPol..| f456ac87d0ed99..| Forward to: k8s|