使用 nginx 反向代理在 Kubernetes 中公开服务
Exposing a service in Kubernetes using nginx reverse proxy
我是 Kubernetes 的新手,想了解如何将 Kubernetes 中的服务 运行 公开给外界。我在集群上使用 NodePort 公开了它。
因此,例如:一项服务在主机上公开端口 31234,我可以通过 https://kubeserverIP:31234.
从另一台服务器访问该服务
我想要实现的是通过 nginx(在不同的服务器上,不受 Kube 控制)通过 url,比如 http://service.example.com 提供此服务。我已经尝试部署 nginx,上游指向该服务,但它不起作用,并出现错误的网关错误。
这里有我遗漏的东西吗?或者有没有更简洁的方法来实现这一点。
我有 Kubernetes 集群的裸机安装,无法访问 gce 负载均衡器或其他供应商 LB。
谢谢
你就快完成了!您的下一步将是设置 ingress controller. There is an NGINX Ingress controller plugin that you can checkout here。
编辑:这是一个示例配置:https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/complete-example
感谢您指出正确的方向。
大致的基本步骤是:
创建应用及其服务定义。
为入口创建一个名称space。
- 创建默认后端部署和服务,用于重定向所有未在入口规则中定义的请求。在入口创建这些 space
- 创建 nginx 入口控制器部署。
- 创建 RBAC 规则。
- 最后使用路径和端口为应用程序创建入口规则。
找到了一个非常有用的指南,其中详细解释了一些事情:
https://akomljen.com/kubernetes-nginx-ingress-controller/
我是 Kubernetes 的新手,想了解如何将 Kubernetes 中的服务 运行 公开给外界。我在集群上使用 NodePort 公开了它。 因此,例如:一项服务在主机上公开端口 31234,我可以通过 https://kubeserverIP:31234.
从另一台服务器访问该服务我想要实现的是通过 nginx(在不同的服务器上,不受 Kube 控制)通过 url,比如 http://service.example.com 提供此服务。我已经尝试部署 nginx,上游指向该服务,但它不起作用,并出现错误的网关错误。
这里有我遗漏的东西吗?或者有没有更简洁的方法来实现这一点。
我有 Kubernetes 集群的裸机安装,无法访问 gce 负载均衡器或其他供应商 LB。
谢谢
你就快完成了!您的下一步将是设置 ingress controller. There is an NGINX Ingress controller plugin that you can checkout here。
编辑:这是一个示例配置:https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/complete-example
感谢您指出正确的方向。
大致的基本步骤是:
创建应用及其服务定义。
为入口创建一个名称space。
- 创建默认后端部署和服务,用于重定向所有未在入口规则中定义的请求。在入口创建这些 space
- 创建 nginx 入口控制器部署。
- 创建 RBAC 规则。
- 最后使用路径和端口为应用程序创建入口规则。
找到了一个非常有用的指南,其中详细解释了一些事情: https://akomljen.com/kubernetes-nginx-ingress-controller/