首页 > 解决方案 > 使用 aws-load-balancer 重定向到 301 - 或者我需要一个入口控制器

问题描述

坦率地说,我不太确定 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 - 我的问题 - 有没有办法配置我的服务来做到这一点,或者我需要一个入口控制器?对于入口控制器(如果可能,我想避免)相关配置是这样的:

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

标签: kubernetesamazon-eks

解决方案


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

或者,您可以将您的方法与https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/tasks/ssl_redirect/或 lokk在 AWS 上使用 ELB 终止 SSL 帖子的Kubernetes HTTP 到 HTTPS 重定向


推荐阅读