我有一个使用自签名证书在443上为HTTPS流量提供服务,该证书的CN为app
,与服务名称app
匹配。它还在80上提供HTTP。
我还有一个Ingress对象,它在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。如果我将Ingress的servicePort
设置为443以确保Google的LB和我的广告连播之间的流量已加密,则端点会返回502 Server Error
。这是因为它不知道相信我的自签名证书吗?有没有办法指定CA?
一旦我将其设置回80,几分钟后Ingress就会再次正常工作。
答案 0 :(得分:2)
您正在寻找的是"重新加密" for Load Balancer< =>集群流量。如果您看到here,则重新加密会列为"未来工作"。
但我看到此功能已合并:https://github.com/kubernetes/ingress/pull/519/commits
看起来您可以找到example here,它被描述为" Backend HTTPS"在本文档中:https://github.com/kubernetes/ingress/tree/master/controllers/gce#backend-https
然而今天这个功能似乎是alpha版本,所以它可能会有所变化,你可能需要创建一个alpha GKE集群(这是短暂的)来使用它。