【问题标题】:Exposing a service in Kubernetes using nginx reverse proxy使用 nginx 反向代理在 Kubernetes 中公开服务
【发布时间】:2018-12-19 16:17:43
【问题描述】:

我是 Kubernetes 新手,想了解如何将 Kubernetes 中运行的服务暴露给外界。我已经使用集群上的 NodePort 公开了它。 因此,例如:一个服务在主机上公开了 31234 端口,我可以通过 https://kubeserverIP:31234 从另一台服务器访问该服务。

我想要实现的是通过 nginx(在不同的服务器上,不受 Kube 控制)通过 URL 提供此服务,例如,http://service.example.com。我尝试使用指向该服务的上游来部署 nginx,但这不起作用并出现错误的网关错误。

这里有什么我遗漏的吗?或者有没有更简洁的方法来实现这一点。

我有一个裸机安装的 Kubernetes 集群,无法访问 gce 负载均衡器或其他供应商 LB。

谢谢

【问题讨论】:

    标签: kubernetes kubernetes-ingress kubernetes-service


    【解决方案1】:

    你快到了!您的下一步将是设置ingress controller。有一个 NGINX Ingress 控制器插件,您可以查看 here

    编辑:这是一个示例配置:https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/complete-example

    【讨论】:

    • 在完整的示例链接中,我看不到 ngnix 的配置位置。
    【解决方案2】:

    感谢您指出正确的方向。

    基本步骤大致是:

    1. 创建应用及其服务定义。

    2. 为入口创建命名空间。

    3. 创建默认后端部署和服务,用于重定向所有未在 Ingress 规则中定义的请求。在入口空间中创建这些
    4. 创建 nginx 入口控制器部署。
    5. 创建 RBAC 规则。
    6. 最后为具有路径和端口的应用程序创建入口规则。

    找到了一个非常有用的指南,其中详细解释了一些事情: https://akomljen.com/kubernetes-nginx-ingress-controller/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-19
      • 2018-09-10
      • 2017-08-16
      • 2018-07-29
      • 1970-01-01
      • 2018-09-05
      • 2019-07-02
      • 1970-01-01
      相关资源
      最近更新 更多