使用nginx反向代理在Kubernetes中公开服务

vin*_*n84 8 kubernetes kubernetes-ingress kubernetes-service

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

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

这里有什么我想念的吗?或者是否有更简洁的方法来实现这一目标.

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

谢谢

jon*_*sen 5

你快到了!下一步将是设置入口控制器.有一个NGINX Ingress控制器插件,你可以在这里结帐.

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


vin*_*n84 5

感谢您指出正确的方向。

基本的步骤大致是:

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

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

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

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