Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ошибки при создании/удалении ВМ через docker-machine #27

Open
kvmukhin opened this issue Aug 29, 2023 · 6 comments

Comments

@kvmukhin
Copy link

При использовании динамических gitlab-runners выявили ошибку, когда из-за сбоя в сети или работе API ЯО генерируется большое количество "призрачных" ВМ в docker-machine, со статусом error. При этом, сам gitlab-runner не останавливается и пытается создать еще и еще ВМ. В результате, когда таких сбойных ВМ накапливается в пару сотен docker-machine полностью отказывается работать.

Судя по всему проблема, в том, что когда не удается создать машину в ЯО в docker-machine все равно остается запись и при попытке удаления таких "призрачных" машин происходит ошибка, что не удалось найти ВМ по пустому ID. Как решение можно на такую ошибку добавить force удаление, тогда по сути несуществующая машина будет почищена из списка docker-machine.

Изменения примерно тут https://github.com/yandex-cloud/docker-machine-driver-yandex/blob/master/driver/driver.go#L442
Либо предварительно делать проверку на существования инстанса с таким ID и если его, нет то просто удалять его.

@QChiba
Copy link

QChiba commented Sep 22, 2023

Есть такая проблема, но насколько я понимаю, она связана не с драйвером, а с docker-machine, который не умеет корректно обрабатывать ошибку от драйвера и все равно создает запись о наличии ВМ. Надеяться на исправление думаю не стоит, т.к. docker-machine не поддерживается больше.
Мы решили эту проблему тем, чтобы пороговые значения для раннера должны быть ниже, чем квоты в Яндекс облаке. В целом ошибка не уходит от этого, но возникает чуть реже. Хотя на большом количестве ВМ, скорее всего это не даст никакого положительного эффекта.

Также Gitlab выпустили новый runner, с собственной разработкой аналога docker-machine и было бы здорово получить драйвер именно для него.

@Sebor
Copy link

Sebor commented Jul 18, 2024

т.к. docker-machine не поддерживается больше

Оригинальный не поддерживается, но форк от гитлаба продолжает релизиться (судя по их репе)

@kvmukhin
Copy link
Author

Используйте fleet-раннеры с ними проблем в разы меньше.
https://gitlab.com/k.mukhin/fleeting-plugin-yc

@Sebor
Copy link

Sebor commented Jul 19, 2024

@kvmukhin выглядит не очень удобно - не хватает доки с примерами
Например не ясно, какой тип экзекьютора должен быть
Сходу не нашел описание на самом гитлабе
И не понятно, как это дебажить (где, например, можно логи посмотреть?)

@kvmukhin
Copy link
Author

Тип раннера docker-autoscaler
Логи в самом gitlab-runner выводятся
Есть статья https://habr.com/ru/articles/766180/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
@Sebor @kvmukhin @QChiba and others