uvicorn 启动期间子进程在 Kubernetes 集群中死亡

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

我们的应用程序使用 FastAPI 版本

0.111.0
。像下面这样启动
uvicron
服务器,这可以在我们的开发/测试环境中在 Windows 机器上运行。当我们在 Azure Kubernets 集群中部署此代码时,子进程在启动过程中死亡

  uvicorn.run(
                "main:app",
                host='0.0.0.0',
                port=8080,
                log_level="DEBUG",
                workers=3
            )

错误信息:

INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
INFO:     Started parent process [1]
INFO:     Waiting for child process [12]
INFO:     Child process [12] died
INFO:     Waiting for child process [13]
INFO:     Child process [13] died
INFO:     Waiting for child process [14]
INFO:     Child process [14] died
INFO:     Waiting for child process [13]
INFO:     Child process [13] died
INFO:     Waiting for child process [15]

如果我们删除

workers
调用的
uvicron.run
参数,应用程序将在 AKS 中启动。我想了解,为什么子进程会因
workers
参数而终止。

谢谢

python-3.x kubernetes fastapi uvicorn
3个回答
0
投票

这里也一样。 回滚到旧版本的 fastapi。

pip install fastapi[all]==0.110.3

编辑:不起作用。

编辑2:将工人从4人改为2人,工作了

编辑3:又发生了。 将工人从 2 人改为 1 人,工作了


0
投票

-1
投票

提供您的 Dockerfile。

  1. 尝试使用 docker 在本地计算机上运行映像。
  2. 检查k8s中的资源限制
  3. 尝试在 minikube 或类似的东西上运行容器。检查它的行为是否相同
  4. 尝试将工人数量限制为 1,而不完全移除生产线
  5. 如果您找到原因,请不要分享
© www.soinside.com 2019 - 2024. All rights reserved.