使用aws-load-balancer重定向到301-还是我需要一个入口控制器

时间:2019-07-26 00:37:46

标签: kubernetes eks

坦率地说,我不太清楚EKS服务和IngressController之间的区别。我有这项服务:

apiVersion: v1
kind: Service
metadata:
  namespace: entity-tools-integration
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:us-west-2:913xxx371:certificate/d98d8d07
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
  labels:
    app: entity-tools-integration
  name: entity-tools-integration
spec:
  type: LoadBalancer
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 80
    - name: https
      protocol: TCP
      port: 443
      targetPort: 80
  selector:
    app: entity-tools-integration

我只想将端口80上的http流量重定向到443上的https-我的问题-是否可以配置 service 来做到这一点,或者我需要一个入口控制器?对于Ingress控制器(如果可能,我会尽量避免),相关的配置如下所示:

https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/tasks/ssl_redirect/

1 个答案:

答案 0 :(得分:0)

您无法通过服务执行此操作,而必须使用入口控制器,但请查看Tenzer workaround。它包含一个很好的解决方案,并说明了如何预先配置服务和Nginx配置configmap。

或者,您可以在https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/tasks/ssl_redirect/中使用您的方法,或者在Kubernetes HTTP to HTTPS Redirect on AWS with ELB terminating SSL 帖子中浏览