如何使用https在AWS中设置外部kubernetes服务

时间:2015-09-29 06:23:58

标签: amazon-web-services kubernetes

我想在AWS中设置一个侦听https的公共kubernetes服务。

我知道kubernetes服务目前只支持TCP和UDP,但有没有办法让这个工作与当前版本的kubernetes和AWS ELB一起使用?

我找到了这个。 http://blog.kubernetes.io/2015/07/strong-simple-ssl-for-kubernetes.html

这是目前最好的方式吗?

3 个答案:

答案 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暴露。