使用AWS负载平衡器将EKS中的FastAPI公开给外部世界

2024-06-07 06:23:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我在EKS中部署了一个FastAPI应用程序。它目前正在监听端口8000。它正在使用uvicorn运行。 enter image description here

我试图通过在EKS中创建一个服务,从AWS创建一个经典的负载平衡器,从而对外公开它

apiVersion: v1
kind: Service
metadata:
  name: bc-warrants-api-svc
spec:
  type: LoadBalancer
  selector:
    app: bc-warrants-api
  ports:
    - protocol: TCP
      port: 8000
      targetPort: 8000

当我检查负载平衡器时,它说目标实例已停止服务

我有一个Django应用程序,运行得非常好(通过经典的负载平衡器对外公开)

有人知道我在FastAPI上做错了什么吗

enter image description here


Tags: 端口awsapi应用程序部署servicev1经典
2条回答

检查CLB的健康检查。罪犯通常会在那里。您可以看到CLB正在对哪个端口和端点执行运行状况检查。在适当的端点上配置healthcheck,实例应再次标记为健康

通过查看屏幕截图,我假设您的Uvicorn正在侦听默认值host和绑定到127.0.0.1和端口8000port

要使应用程序向internet公开,您需要将默认地址更改为listen

$ uvicorn main:app  host 0.0.0.0  reload

您可以在此处获得更多详细信息:https://www.uvicorn.org/settings/

相关问题 更多 >