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