web-applications - 如何在 kubeadm 集群上公开 Web 应用程序?
问题描述
如何在使用创建的 Kubernetes 集群上公开在 Docker 容器内运行的 Web 应用程序kubeadm
?我希望能够使用常规端口(80 或 443)访问 IP 地址上的应用程序。我努力了:
kubectl expose deployments/mywebsite --type=NodePort --port=80
但我只能通过高端口号访问它。
使用--type=LoadBalancer
,但外部 IP 保持打开Pending
。
有没有办法让我的 Web 应用程序通过我的自定义集群上的 IP 和低端口访问?
解决方案
您是在 AWS 或云提供商上运行 Kubernetes 集群吗?如果不是,那么您就不能使用服务类型的负载均衡器。
在节点端口上公开应该没问题,它将在集群节点上的 30k-32k 范围内分配一个高随机端口。
要使用 80 等低端口,请将外部负载均衡器指向 Kubernetes nodePort 服务。
外部负载均衡器(例如 nginx 或 apache)上的用户端口 80
您还可以使用入口控制器。
推荐阅读
- firebase - 为什么 node.js 中的 Firebase 管理员身份验证不使用 ADC?
- arrays - 使用嵌套数组定义 JSON 模式
- crystal-reports - 向报表添加第二个表字段会导致报表变为空白 - Crystal Reports 14.1.2.1121 使用 SQL Server 数据库源
- javascript - 将鼠标悬停事件插入使用 SVGRenderer、highcharts 创建的自定义标签
- javascript - XMLHttp 请求更新数据库中的数据
- node.js - 嵌套对象上的 Mongo 索引
- c++ - 如何从向量中删除重复的所有实例
- sql - 从提款金额中减去每日金额
- r - 过滤包含条件和异常的数据集
- python - Python Pandas 在匹配键时对特定列求和