Как выполнить откат после развертывания в Google Cloud Run

Я начал играть с Google Cloud Run, и, по крайней мере, на первый взгляд, он выглядит фантастическим инструментом. Одна вещь, которую я не могу понять, - это как сделать откат эффективно.

Я разворачиваю свой сервис через командную строку

gcloud beta run deploy my-service --image my-image

и в идеале я хотел бы иметь возможность вернуться к предыдущей версии, если я обнаружу проблему с моим новым развертыванием.

Есть ли способ откатить или перенести трафик на конкретную ревизию?


person David    schedule 19.09.2019    source источник
comment
Подтверждаю, Cloud Run - это круто! Я фанат (и альфа-тестировщик). Грядут великие дела, следите за обновлениями!   -  person guillaume blaquiere    schedule 19.09.2019


Ответы (1)


Это новая функция на управляемой платформе! Потерпи!

А пока просто разверните новую ревизию с предыдущим образом. Вы можете просматривать изображение с помощью интерфейса командной строки или пользовательского интерфейса. Получите образ с дайджестом и разверните его.

Чтобы перечислить ревизию, используйте gcloud beta run revisions list --filter <service name> --platform managed

Чтобы получить изображение вашей ревизии gcloud beta run revisions describe <revision name> --platform managed --region <region> --format 'value(status.imageDigest)'

Позаботьтесь о env var, если вы измените версию между версиями (вы также можете увидеть это в графическом интерфейсе или с помощью интерфейса командной строки)

Для перечисления переменной ревизии gcloud beta run revisions describe <revision name> --platform managed --region <region> --format 'default(spec.containers)'

Для Cloud Run на GKE вы можете обновить маршрут с помощью YAML. Начните с извлечения маршрута из CLoud Run gcloud beta run routes describe <service name> > route.yaml

Измените ревизию, указанную в конце описания:

traffic:
  - percent: 100
    revisionName: <revision Name>

Затем выполните kubectl apply -f route.yaml

person guillaume blaquiere    schedule 19.09.2019
comment
Я так и думал! Спасибо за предложенный обходной путь, а пока я постараюсь набраться терпения. - person David; 19.09.2019
comment
Я получаю эту ошибку, когда применяю error: unable to recognize "route.yaml": no matches for kind "Route" in version "serving.knative.dev/v1alpha1 - person adam shamsudeen; 01.11.2019
comment
Это еще доступно? Сэкономил бы нам время. - person Luke Pighetti; 11.11.2019
comment
@adamshamsudeen Маршрут задокументирован здесь и является частью Рыночная сервировка 0,3. Проверьте свой кластер и развернутый компонент. - person guillaume blaquiere; 11.11.2019
comment
@LukePighetti, он доступен в Cloud Run для Anthos (на GKE) и, следовательно, во всем кластере K8S, совместимом с Knative Servicing. В управляемом Cloud Run он пока недоступен. - person guillaume blaquiere; 11.11.2019
comment
Он приближается, но пока нет даты. Оставайтесь с нами! - person guillaume blaquiere; 13.11.2019