我正试图在kubernetes上开发一个热重加载应用程序(即时代码同步)。我正在使用DevSpace。当在小型集群上运行我的应用程序时,一切正常,我可以按下入口到达我的FastAPI文档。问题是,当我尝试使用devspace时,我可以执行到我的舱内,并立即看到我的更改被反映出来,但是当我试图进入我的FastAPI文档时,我得到了一个502坏网关。
我有一个这样的api-pod.yaml文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: project-api
spec:
replicas: 1
selector:
matchLabels:
app: project-api
template:
metadata:
labels:
app: project-api
spec:
containers:
- image: project/project-api:0.0.1
name: project-api
command: ["uvicorn"]
args: ["endpoint:app", "--port=8000", "--host", "0.0.0.0"]
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:
path: /api/v1/project/tasks/
port: 8000
initialDelaySeconds: 5
timeoutSeconds: 1
periodSeconds: 600
failureThreshold: 3
ports:
- containerPort: 8000
name: http
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: project-api
spec:
selector:
app: project-api
ports:
- port: 8000
protocol: TCP
targetPort: http
type: ClusterIP我有一个这样的api-ingress.yaml文件:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: project-ingress
spec:
rules:
- http:
paths:
- path: /api/v1/project/tasks/
pathType: Prefix
backend:
service:
name: project-api
port:
number: 8000
ingressClassName: nginx
---
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: nginx
spec:
controller: k8s.io/ingress-nginx使用kubectl get ep,我得到:
NAME ENDPOINTS AGE
project-api 172.17.0.6:8000 17m使用kubectl get svc,我得到:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
project-api ClusterIP 10.97.182.167 <none> 8000/TCP 17m使用kubectl get ingress我得到:
NAME CLASS HOSTS ADDRESS PORTS AGE
api-ingress nginx * 192.168.64.112 80 17m重申一下,我的问题是,当我尝试使用FastAPI访问192.168.64.112/api/v1/project/tasks/docs文档时,我得到了一个502坏网关。
我在跑步:
MacOS Monterey: 12.4
Minikube version: v1.26.0 (with hyperkit as the vm)
Ingress controller: k8s.gcr.io/ingress-nginx/controller:v1.2.1
Devspace version: 5.18.5发布于 2022-07-12 07:45:06
我相信问题在DevSpace内部。我现在很舒服地使用倾斜。一切都如期而至。
https://stackoverflow.com/questions/72945975
复制相似问题