如何公开在 Openshift pod 内运行的 Flask 应用程序

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

我创建了一个 Flask 应用程序,需要在 OCP pod 内运行。该 Pod 有一个 Python 容器,该应用程序是一个基本的 Flask 应用程序。 当我使用

python app.py
运行应用程序时,应用程序会在
0.0.0.0:5000
处公开。

目前,无需为其创建 Docker 映像,并且我无法为该应用程序创建部署,因为它必须作为一个小型“sidecar”容器运行,并且该应用程序的启动将使用另一个自动化工具运行。

应用程序正在运行,当我从 Pod 中运行

curl 0.0.0.0:5000
时,它会打印应用程序的内容。

我尝试使用

oc expose pod <python-pod-name> --port=5000 --name=flask
创建服务,然后运行
 oc expose svc flask
创建路线,我尝试使用
<url>:5000
访问网址,也尝试过
http://<url>
,但没有成功。

以下是路线规格:

spec:
  host: <host>
  to:
    kind: Service
    name: flask
    weight: 100
  port:
    targetPort: 5000
  wildcardPolicy: None

服务的yaml:

kind: Service
apiVersion: v1
metadata:
  name: flask
specs:
  clusterIP: <cluster's IP address>
  ipFamilies:
    - IPv4
  ports:
    - protocol: TCP
      port: 5000
      targetPort: 5000
  internalTrafficPolicy: Cluster
  type: ClusterIP

我想知道我是否遗漏了什么,以及是否有其他方法可以做到这一点。

python kubernetes flask openshift
1个回答
0
投票

当您通过 Route 公开服务时,该服务由 OpenShift 入口服务处理,该服务侦听端口 80 和 443。您的应用程序将在这些端口之一或两个上可用(因此

http://...
https://... 
)取决于您如何配置路线。

入口路由器将接受端口 80 或 443 上的请求,然后将这些请求代理到

spec.port.targetPort
上的服务。

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