我想在AWS中设置一个侦听https的公共kubernetes服务。
我知道kubernetes服务目前只支持TCP和UDP,但有没有办法让这个工作与当前版本的kubernetes和AWS ELB一起使用?
我找到了这个。 http://blog.kubernetes.io/2015/07/strong-simple-ssl-for-kubernetes.html这是目前最好的方式吗?
答案 0 :(得分:1)
Https通常通过TCP运行,因此您只需使用Type = Nodeport / LoadBalancer运行服务并管理服务中的证书。这个例子可能有助于[1],nginx正在监听:443通过NodePort进行入口流量。有关该示例的更好解释,请参见[2]。
[1] https://github.com/kubernetes/kubernetes/blob/release-1.0/examples/https-nginx/nginx-app.yaml#L8
[2] http://kubernetes.io/v1.0/docs/user-guide/connecting-applications.html
答案 1 :(得分:1)
从1.3开始,您可以使用注释和type = LoadBalancer服务:
https://github.com/kubernetes/kubernetes/issues/24978
service.beta.kubernetes.io/aws-load-balancer-ssl-cert=arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012
service.beta.kubernetes.io/aws-load-balancer-ssl-ports=* (or e.g. https)
如果您想要的是在任意数量的端口上支持HTTPS,则第一个注释是您唯一需要的注释。如果您还想在一个或多个其他端口上支持HTTP,则需要使用第二个注释明确指定哪些端口将使用加密(其他端口将使用普通HTTP)。
答案 2 :(得分:0)
在我的情况下,我在aws中设置了elb并在其上设置了ssl证书,为elb中的连接类型选择了https和http,这非常有用。我设置elb wroth kubectl暴露。