首页 > 解决方案 > 如何在 kubeadm 集群上公开 Web 应用程序?

问题描述

如何在使用创建的 Kubernetes 集群上公开在 Docker 容器内运行的 Web 应用程序kubeadm?我希望能够使用常规端口(80 或 443)访问 IP 地址上的应用程序。我努力了:

kubectl expose deployments/mywebsite --type=NodePort --port=80

但我只能通过高端口号访问它。

使用--type=LoadBalancer,但外部 IP 保持打开Pending

有没有办法让我的 Web 应用程序通过我的自定义集群上的 IP 和低端口访问?

标签: web-applicationskuberneteskubectlkubeadm

解决方案


您是在 AWS 或云提供商上运行 Kubernetes 集群吗?如果不是,那么您就不能使用服务类型的负载均衡器。

在节点端口上公开应该没问题,它将在集群节点上的 30k-32k 范围内分配一个高随机端口。

要使用 80 等低端口,请将外部负载均衡器指向 Kubernetes nodePort 服务。

外部负载均衡器(例如 nginx 或 apache)上的用户端口 80

您还可以使用入口控制器。


推荐阅读