如何在Kubernetes服务清单中将HTTP重定向到https

时间:2019-02-13 16:13:39

标签: amazon-web-services kubernetes

我已经使用类型负载均衡器创建了服务,并且还为其配置了SSL证书,一切正常,但是直到我在域之前手动输入https之前,它不会将HTTP调用重定向到https。 这是我的svc.yml

apiVersion: v1
kind: Service
metadata:
  name: nginx-svc
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "True"
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
    dns.alpha.kubernetes.io/external: test.example.com
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: xxxxxxxxxxxxxx
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
  labels:
    app: nginx
spec:
  type: LoadBalancer
  loadBalancerIP:
  ports:
  - port: 80
    name: http
    targetPort: 80
  - port: 443
    name: https
    targetPort: 80
  selector:
    app: nginx

1 个答案:

答案 0 :(得分:1)

我相信,k8s服务对象不具有重定向功能,它旨在为具有临时IP的Pod提供静态IP(clusterIP)。它使Pod能够在集群中具有服务发现功能

  

Kubernetes服务是一种抽象,定义了Pods的逻辑集和访问它们的策略-有时称为微服务。服务所针对的Pod集合(通常)由标签选择器确定(请参见下文,了解为什么您可能希望没有选择器的服务)。   例如,考虑一个运行3个副本的图像处理后端。这些副本是可替代的-前端不在乎它们使用哪个后端。虽然组成后端集的实际Pod可能会更改,但是前端客户端不需要知道这一点,也不需要自己跟踪后端列表。服务抽象使这种解耦成为可能。

k8s service

重定向应该在云提供商的入口级别(L7)或在负载均衡器(L4)上进行。