flask - NLP Flask 应用程序启动节点在 Google Kubernetes GKE 上超时
问题描述
我有一个烧瓶应用程序,其中包含一些 NLP 包,并且在启动服务器之前需要一段时间来初始构建一些向量。我过去在使用 Google App Engine 时注意到了这一点,并且我能够在 app.yaml 文件中设置最大超时来解决这个问题。
问题是当我使用这个应用程序在 Kubernetes 上启动我的集群时,我注意到工作人员在日志中不断超时。这是有道理的,因为我确定默认的时间量是不够的。但是,我不知道如何配置 GKE 以让工作人员有足够的时间在开始服务之前完成它需要做的所有事情。
如何增加工作人员在超时之前可以花费的时间?
我删除了旧实例,所以我现在无法获取日志,但如果有人想查看日志,我可以启动它。
是这样的:
I 2020-06-26T01:16:04.603060653Z Computing vectors for all products
E 2020-06-26T01:16:05.660331982Z
95it [00:05, 17.84it/s][2020-06-26 01:16:05 +0000] [220] [INFO] Booting worker with pid: 220
E 2020-06-26T01:16:31.198002748Z [nltk_data] Downloading package stopwords to /root/nltk_data...
E 2020-06-26T01:16:31.198056691Z [nltk_data] Package stopwords is already up-to-date!
100it 2020-06-26T01:16:35.696015992Z [CRITICAL] WORKER TIMEOUT (pid:220)
E 2020-06-26T01:16:35.696015992Z [2020-06-26 01:16:35 +0000] [220] [INFO] Worker exiting (pid: 220)
我也看到了这个:
The node was low on resource: memory. Container thoughtful-sha256-1 was using 1035416Ki, which exceeds its request of 0.
显然我不完全知道我在做什么。为什么它说我正在请求 0 内存,我可以为 Kubernetes 节点设置超时量吗?
谢谢您的帮助!
解决方案
您可以做的一件事是在GCP 实例的启动脚本中添加某种延迟。你可以尝试一个简单的:
#!/bin/bash
sleep <time-in-seconds>
您可以尝试的另一件事是在容器在 Kubernetes 节点中启动时添加某种延迟。例如,initContainer中的延迟
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: myapa:latest
initContainers:
- name: init-myservice
image: busybox:1.28
command: ['sh', '-c', "echo Waiting a bit && sleep 3600"]
此外,您可以尝试将StartupProbe与实际应用程序容器上的Probe参数相结合initialDelaySeconds
,这样它实际上会等待一段时间,然后说:我将查看应用程序是否已启动。:
startupProbe:
exec:
command:
- touch
- /tmp/started
initialDelaySeconds: 3600
推荐阅读
- javascript - 发布请求,返回未定义,NodeJS,Express
- javascript - 如何填充动态表单字段值?
- java - Java 流比较来自两个流的对象并创建新对象
- reactjs - Camunda:如何使用 ReactJS fetch 部署进程
- laravel-7 - 将作曲家安装到 Laravel 7 时出现问题
- python - Pyodbc:插入时出现 SQLExecDirectW 错误
- redux - 使用 redux 从库组件访问主机存储
- python - 查找目录树结构中所有无效的json文件
- c# - 在 net.tcp://url 上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的
- ios - 在我的应用中实施时 XLPagerTabStrip 出现问题