我创建了一个运行容器化Flask Web应用程序的Kubernetes集群(1x Master / 2x Workers)。我已经在主节点上创建了一个部署/服务,该部署/服务公开了一个NodePort来访问在:5000下在worker上运行的应用程序。
应用程序 Pane 处于 Activity 状态,NodePort服务可用。但是,由于集群在具有其自身IP的AWS EC2实例上运行,因此我无法通过NodePort IP地址访问集群应用。
我正在考虑通过本地浏览器通过:5000访问群集的Flask应用的最简单方法吗?
到目前为止的背景:
这是我的集群设置:
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应用处于 Activity 状态):
* 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 EC2上对此感到满意,那么我很乐于助人:)
提前致谢..
最佳答案
您应该能够通过EC2公共(public)IP到达应用程序NodePort。您只需要允许节点实例安全组中的NodePort端口。要允许所有NodePort,您需要允许端口范围从0.0.0.0/0到30000-32767。
如果您只想打开端口5000,则需要像这样在部署规范中放入hostNetwork: true
:
spec:
hostNetwork: true
并且您还需要在安全组中允许端口5000
关于flask - EC2/Kubernetes-如何通过EC2上的NodePort访问群集 flask 服务?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55889619/