Я пытаюсь настроить SSL-завершение для моего балансировщика нагрузки EKS в Apache развертывании Openwhisk
kind: Service
metadata:
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: 50m
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: <arn>
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https-api
creationTimestamp: "2020-03-17T19:06:28Z"
labels:
app: owdev-openwhisk
chart: openwhisk-0.2.1
heritage: Helm
name: owdev-nginx
release: owdev
name: owdev-nginx
namespace: openwhisk
resourceVersion: "43288"
selfLink: /api/v1/namespaces/openwhisk/services/owdev-nginx
uid: 679858cf-6882-11ea-8746-02f532cfa957
spec:
clusterIP: <ip>
externalTrafficPolicy: Cluster
ports:
- name: http
nodePort: 31858
port: 80
protocol: TCP
targetPort: 80
- name: https-api
nodePort: 32653
port: 443
protocol: TCP
targetPort: 443
selector:
name: owdev-nginx
sessionAffinity: None
type: LoadBalancer
При развертывании служба выглядит следующим образом. С этой конфигурацией, когда я посещаю конечную точку в моем браузере, я получаю:
400 Bad Request
The plain HTTP request was sent to HTTPS port
, но внутренне:
curl -k -v https://owdev-nginx
работает нормально.
Если я затем поменяю targetPort https-api на http, внешняя конечная точка работает, но внутренняя имеет похожую ошибку.
Любые предложения относительно того, что нужно настроить, чтобы получить как внешнюю, так и внутреннюю (сертификат игнорируется) запросы, проходящие через него?
Я понимаю, что это похоже на раздел «Общие ловушки»: https://kubernetes-on-aws.readthedocs.io/en/latest/user-guide/tls-termination.html Есть ли способ обойти это?