我有一个POD,它使用带有app
CN的自签名证书在443上为HTTPS流量提供服务,该证书与服务名称 app
匹配。它也可以在80上使用HTTP。
我也有一个入口对象,该对象在foo.com
上外部暴露POD,并且我使用kube-lego
用于动态获取和配置FOO.com的LetSencrypt证书:
spec:
rules:
- host: foo.com
http:
paths:
- backend:
serviceName: kube-lego-gce
servicePort: 8080
path: /.well-known/acme-challenge/*
- backend:
serviceName: app
servicePort: 80
path: /*
tls:
- hosts:
- foo.com
secretName: app-tls-staging
这意味着SSL有两个级别。如果将入口的servicePort
设置为443,以确保Google的LB和我的POD之间的流量加密,则端点返回502 Server Error
。这是因为它不知道相信我的自我签名证书吗?有没有办法指定CA?
一旦我将其设置回80,几分钟后,入口再次正常工作。
您要寻找的是负载平衡器< =>群集流量的"重新加热"。如果您在此处看到,则将重新吸收列为"未来工作"。
但我看到此功能已合并:https://github.com/kubernetes/ingress/pull/519/commits
看起来您可以在此处找到一个示例,并且在此文档中被描述为"后端https":https://github.com/kubernetes/ingress/tree/tree/master/master/master/controllers/gce#backend-backend-backend-https->
今天,此功能似乎在Alpha中,因此可能需要更改,您可能需要创建一个Alpha Gke群集(短暂的(才能使用它。