Nous avons besoin d'un service Kubernetes qui fait apparaître un équilibreur de charge AWS prenant en charge les web-sockets, c'est-à-dire pas le LB classique. La prise en charge de l'AWS NLB est à l'état d'Alpha - mais semble bien fonctionner.
Le problème que nous rencontrons est de configurer l'écouteur pour qu'il soit TLS et non TCP et d'attacher correctement le certificat SSL ACM - ce qui fonctionne bien avec le LB classique.
Les annotations que nous avons dans le service.yml
sont :
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
Le résultat est :
| Listener ID | Security Policy | SSL Certificate | Default Action |
| --- | --- | --- | --- |
| TCP: 443 | N/A | N/A | Forward to: k8s|
Attendu :
| Listener ID | Security Policy | SSL Certificate | Default Action |
| --- | --- | --- | --- |
| TLS: 443 | ELBSecurityPol..| f456ac87d0ed99..| Forward to: k8s|