首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在AKS上无入口地获得HTTPS

如何在AKS上无入口地获得HTTPS
EN

Stack Overflow用户
提问于 2018-10-26 14:36:59
回答 2查看 4.6K关注 0票数 8

我的问题很简单。我有一个带有LoadBalancer服务的AKS部署,它需要使用带有证书的HTTPS。

我该怎么做?

我在网上看到的每一件事都涉及到了娜妞,尤其是女强人。

但是我的部署不是一个网站,它是一个Dropwizard服务,在一个端口上有一个REST,在另一个端口上有一个管理服务。我不想将端口映射到端口80上的路径,我希望保持端口的原样。为什么HTTPS和入口有关?

我只想要一个证书的HTTPS,没有更多的改变,有一个简单的解决方案吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-26 20:06:40

带有正确证书的侧加容器(可能从ConfigMap或秘密加载)将在不输入的情况下完成工作。似乎是一个很好的例子,使用nginx-ssl-代理容器

票数 3
EN

Stack Overflow用户

发布于 2018-10-26 15:45:03

是的,在本文编写之时,一个宏当前将在端口80或端口443上工作,它可能可以扩展到使用任何端口,因为nginx特雷菲克哈代等等都可以监听不同的端口。

因此,您可以选择LoadBalancerNodePort类型的服务。由于Azure负载平衡器是LoadBalancer,所以TLS不能直接使用TLS。因此,您将不得不使用应用网关,并且出于安全考虑,它更倾向于使用内负载平衡器

由于您使用的是Azure,所以您可以运行这样的程序(假设您的K8s集群配置了正确的方式来使用Azure云提供程序,要么是--cloud-provider选项,要么是云控制器管理器):

代码语言:javascript
复制
$ cat <<EOF
apiVersion: v1
kind: Service
metadata:
  name: your-app
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
  type: LoadBalancer
  ports:
  - port: <your-port>
  selector:
    app: your-app
EOF | kubectl apply -f -

这将创建一个Azure负载平衡器在您喜欢的端口为您的服务。在幕后,负载均衡器将指向节点上的一个端口,在节点中,将有防火墙规则将路由到您的容器。然后您可以配置应用网关下面是是一篇很好的文章,但是使用端口80,您必须使用端口443修改它并配置TLS证书,而且Application还支持端到端TLS,以防您也想在应用程序上直接终止TLS。

另一个选项是NodePort,您可以运行如下内容:

代码语言:javascript
复制
$ kubectl expose deployment <deployment-name> --type=NodePort

然后,Kubernetes将在所有节点上选择一个随机端口,在那里可以向您的服务发送流量,侦听<your-port>。因此,在本例中,您必须使用TLS或流量源手动创建负载均衡器,该源侦听TLS <your-port>并将其转发到所有节点上的NodePort,该负载均衡器可以是类似have、nginx、Traefik或其他支持终止TLS的东西。您还可以使用应用网关直接转发到节点端口,换句话说,定义一个侦听器来侦听集群的NodePort。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53011044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档