首页 文章

AWS上的Kubernetes具有NGINX入口控制器和SSL终端

提问于
浏览
1

在我的Kubernetes集群中配置SSL终止时遇到问题 . 试图弄清楚这个发生的最佳位置 .

我已按照here列出的说明进行操作,然后使用 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但未被传递 . 所以我的问题是:

这是正确的配置还是有更好的解决方案?

谢谢 :)

1 回答

相关问题