[英]kubernetes: ELB not redirecting to https despite nginx configuration
我在aws
上的k8s
部署中有一个LoadBalancer
服务(通过kops
)。
服务定义如下:
apiVersion: v1
kind: Service
metadata:
name: ui
annotations:
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: <certificate_id>
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
spec:
ports:
- name: http
port: 80
targetPort: ui-port
protocol: TCP
- name: https
port: 443
targetPort: ui-port
protocol: TCP
selector:
els-pod: ui
type: LoadBalancer
这是各自的部署:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: ui-deployment
spec:
replicas: 1
template:
metadata:
labels:
els-pod: ui
spec:
containers:
- image: <my_ecr_registry>/<my_image>:latest
name: ui
ports:
- name: ui-port
containerPort: 80
restartPolicy: Always
我知道<my_image>
暴露了端口80
。
我还为部署的ELB
分配了别名。 my-k8s.mydomain.org
所述ui
荚包括nginx
图像,其中两个内server
上下文和/
位置块,具有以下指令:
if ($http_x_forwarded_proto != 'https') {
rewrite ^ https://$host$request_uri? permanent;
}
但是,当通过http
访问服务(即,作为别名分配给ELB
的域名)时,我不会重定向到https
。
我遇到了相反的问题,并通过添加nginx.ingress.kubernetes.io/ssl-redirect解决了它:“ false”。
也许为您配置:
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
可以解决您的问题?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.