如何解决使用 nginx 入口控制器在 kubernetes 上公开应用程序 - 裸机方式
我是 K8s 的新手,试图通过 IP 访问应用程序。下面是情况-
- 集群已就绪,1 个主节点和 1 个工作节点,Pod 处于运行状态
- 在此 doc 的帮助下安装了 nginx 入口控制器
- 现在我可以访问工作节点(在浏览器上粘贴工作 IP,当前显示 404 状态),我想访问在端口 4200 和 8080 上运行的应用
- 如何通过基于路径的方式(如
XXX.XXX.XXX.XXX/app1
和XXX.XXX.XXX.XXX/app2
)访问我的应用程序,在哪些文件中以及我必须做哪些更改?服务的状态显示为<pending>
?这是什么意思?
解决方法
如果您使用“LoadBalancer”类型作为服务,显然您应该安装或使用第 3 方 LoadBalancer,因为您使用的是裸金属环境。例如,您可以使用 MetalLB。
您可以在下面找到有关 MetalLB 的更多信息: https://blog.inkubate.io/install-and-configure-metallb-as-a-load-balancer-for-kubernetes/
如果没有,您可能必须使用“NodePort”类型作为服务。
,为什么需要在裸机上使用入口控制器?
尝试使用简单的 NodePort 服务类型,它会给你同样的结果。当您将入口控制器置于云负载平衡器之后时,它更受欢迎。
回到你的问题 4:
只有在入口控制器前面有云负载平衡器时才能执行此操作,在任何其他情况下,您都必须执行以下操作:XXX.XXX.XXX.XXX:$INGRESS_CONTROLLER_PORT/$PATH
指的是:XXX.XXX.XXX.XXX
($K8S_cluster_IP)。
这几乎与 NodePort 服务相同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。