Cloudrun на GKE - время ожидания и перезапуск
При запуске CloudRun на GKE. Через графический интерфейс кажется, что память ограничена 2 ГБ, однако после выполнения в CloudRun Pod я могу подтвердить, что память была из пула узлов GKE.
Тем не менее, я не слишком уверен, применяется ли таймаут или нет. Похоже, CloudRun на GKE все еще ограничен. Во-первых, я не могу выбрать "900" или "800" из списка. Это позволяет мне выбрать "600".
После выбора 600 кажется, что мой контейнер работал около 11-12 минут, а затем внезапно умер. Единственным объяснением является то, что тайм-аут запроса для CloudRun применяется к GKE.
Я пытаюсь реализовать долгосрочные задачи, которые будут запланированы на кластере GKE и выполнены CloudRun. Во-первых, графический интерфейс GCP CloudRun вводит в заблуждение. Это позволяет разработчику выбирать значения для памяти и тайм-аута, которые на самом деле не реализованы. Еще одна проблема, которую я обнаружил, заключалась в том, что мой контейнер перезапускал код на том же "модуле" в середине. Это объясняется ниже с помощью кода и примера вывода.
Метод POST, используемый для запуска CloudRun из cmdline
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 минут он перезапустил код с самого начала, продолжая работать с исходным кодом. Контейнер завершился через 10 минут, когда тайм-аут запроса CloudRun был установлен на 300.