gpt4 book ai didi

networking - 为 Kubernetes NodePort 服务支持 SSL/TLS

转载 作者:行者123 更新时间:2023-12-04 13:01:52 28 4
gpt4 key购买 nike

问题

我需要通过 https 对外公开 Kubernetes NodePort 服务。

设置

  • 我已经在裸机上部署了 Kubernetes 并且已经部署了 Polyaxon在集群上通过 Helm
  • 我需要使用集群外部的虚拟机通过浏览器访问 Polyaxon 的仪表板
  • 仪表板作为 NodePort 服务公开,我可以通过 http 连接到它。我是 不是 能够通过 https 连接,这对我来说是一个硬性要求。
  • 在最初的“构建”期之后,集群和虚拟机都将无法访问更广泛的互联网。他们将相互连接,仅此而已。

  • Polyaxon 据称通过其自己的配置支持 SSL/TLS,但关于此的文档很少。我已尽最大努力以这种方式解决问题,但也遇到了 an issue在他们的 github 上,但到目前为止还没有任何运气。

    所以我现在想知道是否有更通用的 Kubernetes hack 可以帮助我。

    解决方案

    我正在寻找最简单的解决方案,而不是最优雅或可扩展的。还有一些事情可能会使我的情况比想要 https 的普通用户更简单,即:
  • 只在一个节点上支持 https 就可以了,而不是在每个节点上
  • 我不需要(或真的想要)一个域名;连接在 https://<ip_address>:<port>不仅可以,而且是首选
  • 自签名证书也可以

  • 所以我希望有一些方法可以直接操作 NodePort 服务,这样 https 就可以在虚拟机上运行。如果这是不可能的,我考虑过的其他解决方案是使用入口 Controller 或某种代理,但这些解决方案在我看来都有些半生不熟。总的来说,我是 Kubernetes 和网络想法的新手,所以如果你要提出更复杂的东西,请说得很慢:)

    非常感谢您的帮助!

    最佳答案

    Ingress-controller 它是通过 TLS 连接从集群到客户端公开 HTTP 后端的标准方法。

    现有 NodePort服务有ClusterIP它可以用作 Ingress 的后端。 ClusterIP 类型的服务就足够了,所以您可以稍后更改服务类型以防止通过 nodeIP:nodePort 进行 HTTP 访问.
    Ingress-controller 允许您终止 TLS 连接或将 TLS 流量传递到后端。

    您可以使用自签名证书或将 cert-manager 与 Let's encrypt 一起使用服务。

    注意,从 0.22.0 版本开始 Nginx-ingress 重写语法 has changed并且文章中的一些示例可能已经过时。

    检查链接:

  • TLS termination
  • TLS/HTTPS
  • How to get Kubernetes Ingress to terminate SSL and proxy to service?
  • Configure Nginx Ingress Controller for TLS termination on Kubernetes on Azure
  • 关于networking - 为 Kubernetes NodePort 服务支持 SSL/TLS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55028512/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com