GKE上的Cloudrun-超时和重新启动问题

时间:2019-05-30 08:50:54

标签: google-cloud-platform google-kubernetes-engine google-cloud-run

在GKE上运行CloudRun时。通过GUI,似乎内存限制为2GB,但是,在执行到CloudRun Pod后,我可以确认内存是GKE节点池的内存。

但是,我不确定超时是否适用。似乎GKE上的CloudRun仍然很有限。首先,我不能从列表中选择“ 900”或“ 800”。它允许我选择“ 600”。

选择600后,我的吊舱似乎跑了大约11-12分钟,然后突然死亡。唯一的解释是CloudRun的请求超时适用于GKE。

我正在尝试实施长期运行的任务,这些任务要安排在GKE集群上并由CloudRun执行。首先,GCP CloudRun的GUI非常令人误解。它使开发人员可以选择未真正实现的内存和超时值。我发现的另一个问题是我的容器在中途在同一“荚”上重新运行了代码。下面将通过代码和示例输出对此进行说明。

用于从cmdline启动CloudRun的POST方法

curl --header "Content-Type: application/json" --request POST --data '{"[requiredData]":"[data]"}' -v -H "Host: testcrlaa.default.example.com" [istio-ingressgateway/80/tasks]

代码在CloudRun上运行以进行测试:

@app.route('/tasks', methods=['POST'])
def create_task():
    if not request.json or not '[requiredData]' in request.json:
        abort(400)
    print("Slept1 @ " + str(datetime.datetime.now()))
    time.sleep(120)
    print("Slept2 @ " + str(datetime.datetime.now()))
    time.sleep(120)
    print("Slept3 @ " + str(datetime.datetime.now()))
    time.sleep(120)
    print("Slept4 @ " + str(datetime.datetime.now()))
    time.sleep(120)
    print("Slept5 @ " + str(datetime.datetime.now()))
    time.sleep(120)
    print("The time now is: {}".format(datetime.datetime.now()))

输出:

Slept1 @ 2019-05-29 14:40:47.781966

Slept2 @ 2019-05-29 14:42:47.880512

Slept3 @ 2019-05-29 14:44:47.976342

Slept1 @ 2019-05-29 14:45:47.793551 <-1

Slept4 @ 2019-05-29 14:46:48.069593

Slept2 @ 2019-05-29 14:47:47.892927 <-2

Slept5 @ 2019-05-29 14:48:48.169817

Slept3 @ 2019-05-29 14:49:47.987202 <-3

...

5分钟后,从头开始重新运行代码,同时仍在运行原始代码。当CloudRun的请求超时设置为300时,容器在10分钟内终止。

0 个答案:

没有答案