【发布时间】:2019-10-17 08:08:39
【问题描述】:
我在虚拟机上构建了自己的 1 主机 kubernetes 集群(1 主机、1 个节点、许多命名空间、许多 pod 和服务),并在始终在线的服务器上运行。
在集群上运行的应用程序运行良好(基本上是 NodeJS 后端和 HTML 前端)。 到目前为止,我有一个 NodePort 服务,它暴露了 30000 端口:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
traefik-ingress-service NodePort 10.109.211.16 <none> 443:30000/TCP 147d
所以,现在我可以通过在浏览器地址栏中输入https://<server-alias>:30000 来访问网络界面。
但我想在不提供端口的情况下访问它,只需键入https://<server-alias>。
我知道,这可以通过 kubectl port-forwarding 命令完成:
kubectl -n kube-system port-forward --address 0.0.0.0 svc/traefik-ingress-service 443:443
这行得通。但这似乎不是一件很专业的事情。
端口转发似乎也时常断开连接。有时,它会抛出一个错误并退出,但让进程保持打开状态,从而使端口保持打开状态 - 必须手动终止进程。
那么,有没有办法专业地完成访问我的应用程序的工作?集群提供商(AWS、GCP...)如何做到这一点?
谢谢!
【问题讨论】:
-
这就是 ingress 的用途
-
请查看不同的Ingress Controllers 我们可以看到您已经安装了其中一个,因此请按照Traefik Controller 进行安装和配置后,您应该使用具有适当入口类的入口资源,例如:@987654328 @.
-
可以直接申请this方法
标签: kubernetes cluster-computing portforwarding