我创建了一个 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
我想知道我是否遗漏了什么,以及是否有其他方法可以做到这一点。
当您通过 Route 公开服务时,该服务由 OpenShift 入口服务处理,该服务侦听端口 80 和 443。您的应用程序将在这些端口之一或两个上可用(因此
http://...
或 https://...
)取决于您如何配置路线。
入口路由器将接受端口 80 或 443 上的请求,然后将这些请求代理到
spec.port.targetPort
上的服务。