, Ничего больше.
анавливаю свой первый вход в kubernetes, используя nginx-ingress. Я настроилingress-nginx
Сервис балансировки нагрузки выглядит так:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "ingress-nginx",
"namespace": "...",
"labels": {
"k8s-addon": "ingress-nginx.addons.k8s.io"
},
"annotations": {
"service.beta.kubernetes.io/aws-load-balancer-backend-protocol": "tcp",
"service.beta.kubernetes.io/aws-load-balancer-proxy-protocol": "*",
"service.beta.kubernetes.io/aws-load-balancer-ssl-cert": "arn....",
"service.beta.kubernetes.io/aws-load-balancer-ssl-ports": "443"
}
},
"spec": {
"ports": [
{
"name": "http",
"protocol": "TCP",
"port": 80,
"targetPort": "http",
"nodePort": 30591
},
{
"name": "https",
"protocol": "TCP",
"port": 443,
"targetPort": "http",
"nodePort": 32564
}
],
"selector": {
"app": "ingress-nginx"
},
"clusterIP": "...",
"type": "LoadBalancer",
"sessionAffinity": "None",
"externalTrafficPolicy": "Cluster"
},
"status": {
"loadBalancer": {
"ingress": [
{
"hostname": "blablala.elb.amazonaws.com"
}
]
}
}
}
Обратите внимание, какhttps
порт имеетtargetPort
свойство, указывающее на порт 80 (http) для завершения ssl в балансировщике нагрузки.
Мой вход выглядит примерно так:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: something
namespace: ...
annotations:
ingress.kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/force-ssl-redirect: "true"
spec:
rules:
- host: www.exapmle.com
http:
paths:
- path: /
backend:
serviceName: some-service
servicePort: 2100
Теперь, когда я перехожу на URL, я получаюToo many redirects error
, Что меня смущает, так это то, что когда я добавляю следующий заголовок «X-Forwarded-Proto: https», я получаю ожидаемый ответ (curl https://www.example.com -v -H "X-Forwarded-Proto: https"
).
Любые идеи, как я могу решить проблему?
Постскриптум это прекрасно работает сingress.kubernetes.io/force-ssl-redirect: "false"
и не похоже, что есть какие-либо посторонние перенаправления.