簡體   English   中英

具有NGINX入口控制器和SSL終止的AWS上的Kubernetes

[英]Kubernetes on AWS with NGINX ingress controller and SSL termination

在我的Kubernetes群集中配置SSL終止時遇到問題。 試圖找出最好的地方來實現這一目標。

我已經能夠按照此處列出的說明進行操作,然后使用service.beta.kubernetes.io/aws-load-balancer-ssl-cert批注更新入口控制器服務以包括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,但沒有通過。 所以我的問題是:

這是正確的配置還是有更好的解決方案?

謝謝 :)

我建議終止在ELB公開的Nginx Ingress Controller上終止SSL,並使用kube-lego進行自動SSL證書管理。

https://github.com/kubernetes/ingress-nginxhttps://github.com/jetstack/kube-lego

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM