我已经使用类型负载均衡器创建了服务,并且还为其配置了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
答案 0 :(得分:1)
我相信,k8s服务对象不不具有重定向功能,它旨在为具有临时IP的Pod提供静态IP(clusterIP)。它使Pod能够在集群中具有服务发现功能
Kubernetes服务是一种抽象,定义了Pods的逻辑集和访问它们的策略-有时称为微服务。服务所针对的Pod集合(通常)由标签选择器确定(请参见下文,了解为什么您可能希望没有选择器的服务)。 例如,考虑一个运行3个副本的图像处理后端。这些副本是可替代的-前端不在乎它们使用哪个后端。虽然组成后端集的实际Pod可能会更改,但是前端客户端不需要知道这一点,也不需要自己跟踪后端列表。服务抽象使这种解耦成为可能。
重定向应该在云提供商的入口级别(L7)或在负载均衡器(L4)上进行。