Нам нужен сервис Kubernetes, который запускает AWS Load Balancer, который поддерживает веб-сокеты, то есть не классический LB.Поддержка AWS NLB находится в альфа-состоянии, но, похоже, работает хорошо.
Проблема, с которой мы столкнулись, заключается в том, чтобы установить для слушателя значение TLS, а не TCP, и правильно подключить сертификат ACM SSL - то, что хорошо работает сКлассический LB
Аннотации, которые мы имеем в service.yml
:
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
Результат:
| Listener ID | Security Policy | SSL Certificate | Default Action |
| --- | --- | --- | --- |
| TCP: 443 | N/A | N/A | Forward to: k8s|
Ожидаемый:
| Listener ID | Security Policy | SSL Certificate | Default Action |
| --- | --- | --- | --- |
| TLS: 443 | ELBSecurityPol..| f456ac87d0ed99..| Forward to: k8s|