1
在我的Kubernetes羣集中配置SSL終端時出現問題。試圖找出發生這種事情的最佳地點。AWS上的Kubernetes使用NGINX入口控制器和SSL終止
我已經能夠得到它的工作按照說明使用service.beta.kubernetes.io/aws-load-balancer-ssl-cert上市here,然後更新入口控制器服務於包括SSL證書的詳細信息註釋:
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app: ingress-nginx
annotations:
service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: '*'
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:...
spec:
type: LoadBalancer
selector:
app: ingress-nginx
ports:
- name: https
port: 443
targetPort: 80
我再有入口規則和服務設置類似於:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: app1
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: app1.foo.bar
http:
paths:
- backend:
serviceName: app1
servicePort: 80
---
apiVersion: v1
kind: Service
metadata:
name: app1
spec:
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 80
selector:
app: app1
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: app1
spec:
template:
metadata:
labels:
app: app1
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
當去app1.foo.bar
我可以看到:
- HTTP請求重定向到https
- SSL證書正確應用
本來我是想證書適用於我個人的應用服務。我可以看到證書被應用於AWS中的ELB,但沒有被傳遞。所以我的問題是:
這是正確的配置還是有更好的解決方案?
謝謝:)
謝謝你 - 如果你看到我的'入口,nginx'服務,這是使用你所列出的控制和傳球請求通過時也終止SSL。這個配置對你來說看起來是否正確? – timothyclifford
你在這裏試圖做的似乎是ELB終止,這不是我所建議的。只需將入站服務定義爲常規服務,即可暴露端口80和443,而不需要任何附加功能(代理協議放在一邊,因爲它很有意義)。然後你的SSL終止會發生在NginX上。 –