EC2 / Kubernetes - 如何通过EC2上的NodePort访问集群烧瓶服务?

问题描述 投票:1回答:1

我创建了一个运行容器化Flask Web应用程序的Kubernetes集群(1x Master / 2x Workers)。我在主节点上创建了一个部署/服务,它公开了一个NodePort来访问在5000下的worker上运行的应用程序。

应用程序窗格处于活动状态,NodePort服务可用。由于群集在具有自己的IP的AWS EC2实例上运行,但是我无法通过NodePort IP地址访问群集应用程序。

我正在考虑通过以下方式访问群集Flask应用程序的最简单方法:5000通过我的本地浏览器?

背景到目前为止:

  • 我已经做了很多关于Kubernetes Ingress和AWS ELB / ALB NGINX Ingress的阅读以解决这个问题,但是从我尝试过的我无法设置这个路由。它似乎很复杂,我无法找到任何易于理解的资源来应用我的情况。
  • 我认为更简单的解决方案可能是设置一个简单的NGINX反向代理,该代理在我的主节点上运行,以将通过[ec2_public_ip]:5000传输的流量转换为[nodeport-cluster-ip]:5000。这似乎在60秒后挂起并超时。

这是我的群集设置:

NAME                               READY   STATUS    RESTARTS   AGE
pod/anagram-app-55996478f5-mdnlg   1/1     Running   0          13m
pod/anagram-app-55996478f5-qkn7p   1/1     Running   0          13m

NAME                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/anagram-app   NodePort    10.108.225.119   <none>        5000:30230/TCP   13m
service/kubernetes    ClusterIP   10.96.0.1        <none>        443/TCP          14m

NAME                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/anagram-app   2/2     2            2           13m

NAME                                     DESIRED   CURRENT   READY   AGE
replicaset.apps/anagram-app-55996478f5   2         2         2       13m

kubectl记录anagram-app-55996478f5-mdnlg(显示Flask应用程序处于活动状态):

 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 212-934-957

我只是想通过我的浏览器在端口上访问群集应用程序的简单方法:5000。如果有人对AWS EC2s有任何喜悦,我愿意接受各种想法:)

提前致谢..

flask amazon-ec2 kubernetes
1个回答
0
投票

您应该能够通过EC2公共IP访问您的应用程序NodePort。您只需要在节点实例安全组中允许NodePort端口。要允许所有NodePort,您需要允许端口范围30000-32767从0.0.0.0/0。

如果你只想打开5000端口 - 那么你需要将hostNetwork: true放在你的部署规范中:

spec:
  hostNetwork: true

此外,您还需要在安全组中允许端口5000

© www.soinside.com 2019 - 2024. All rights reserved.