Size: a a a

Kubernetes — русскоговорящее сообщество

2020 March 16

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Vadim Rutkovsky
слушайте, идите уже в девопс или куда там? Кубер тут вообще уже ушел из картины
Все, dixi
источник

AS

Anton Strukov in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
да даже не автоматически. У меня прогеры бывает навертят такого, что без тегов, они своими силами просто не могут привести ветку к виду, как она была в прошлой версии. 500 коммитов недавно вот выкатили 😁.

Если откат = откат кода в репозоитории до прошлого состояния. То как это сделать, если они даже не знают, на каком комите было прошлое состояние?
Каким образом тегировать образы? Или любимое imagePullPolicy: Always + timestamp в env?

Сори, я видимо не совсем понял всю задумку целиком, если распишешь как это в целом выглядит, будет круто. На примере одного сервиса
1) как организованы репы
2) Как происходит сборка образов , тегирование, и пуш их в registry
3) Как происходит деплой и откат на предыдущую версию
То что в мастер смержено — то и должно быть в проде, оно должно быть проверено в CI фазе
Тегировать образы sha1 коммита, полный
teamname/appname:sha1commit
любой CI сборка, пуш в реджистри, тестирование, деплой в тесте, автотесты, если это мр разлочить кнопку мр
как угодно, можно спиннакером, можно хелмом, можно kubectl set image
источник

L

Lucky SB in Kubernetes — русскоговорящее сообщество
Евгений Омельченко
Для этого автосквош есть :) Но кодеры вообще тут не при чём. У вас должно быть две репы, для инфраструктуры и для кода, отдельно

1) Кодер херачит код в мастер
2) Ставит новый тег
3) Идёт и выставляет в репе инфры новый тег
4) Коммитит
5) CI запускает деплой
6) Если во время деплоя возникают проблемы, то загорается alert
7) Дежурный разработчик лезет смотреть что сломалось
8) По завершении дебага делает реверт в гите инфраструктуры
между п6 и п8 проходит два дня. прод лежит.
источник

ЕО

Евгений Омельченко... in Kubernetes — русскоговорящее сообщество
Евгений Омельченко
Значит у тебя просто слишком minAvailable занижен
this
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Фиг там
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Может у тебя миграции говно
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Или квоты
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Или anything else
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Anton Strukov
То что в мастер смержено — то и должно быть в проде, оно должно быть проверено в CI фазе
Тегировать образы sha1 коммита, полный
teamname/appname:sha1commit
любой CI сборка, пуш в реджистри, тестирование, деплой в тесте, автотесты, если это мр разлочить кнопку мр
как угодно, можно спиннакером, можно хелмом, можно kubectl set image
в @ru_devops продолжили
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
И вообще - я сторонник деплоя в отдельный неймспейс. Чтобы не кубер рулил количеством
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Anton Strukov
То что в мастер смержено — то и должно быть в проде, оно должно быть проверено в CI фазе
Тегировать образы sha1 коммита, полный
teamname/appname:sha1commit
любой CI сборка, пуш в реджистри, тестирование, деплой в тесте, автотесты, если это мр разлочить кнопку мр
как угодно, можно спиннакером, можно хелмом, можно kubectl set image
суть в том, что я не понимаю как при таком подходе добиться совместимости версий приложения и описаний инфры под нее.
Пример

Для версии v1.0.1 нужно было два деплоймента (в терминах k8s)
Для версии v1.0.2 один деплоймент.

Разраб захотел откатить. В репе для инфры выставил версию v1.0.1, но забыл вернуть второй деплоймент. И опять получили сломанное приложение
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
суть в том, что я не понимаю как при таком подходе добиться совместимости версий приложения и описаний инфры под нее.
Пример

Для версии v1.0.1 нужно было два деплоймента (в терминах k8s)
Для версии v1.0.2 один деплоймент.

Разраб захотел откатить. В репе для инфры выставил версию v1.0.1, но забыл вернуть второй деплоймент. И опять получили сломанное приложение
Хельм ?
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
George Gaál
Хельм ?
не, в другом чатике продолжение
источник

AS

Anton Strukov in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
суть в том, что я не понимаю как при таком подходе добиться совместимости версий приложения и описаний инфры под нее.
Пример

Для версии v1.0.1 нужно было два деплоймента (в терминах k8s)
Для версии v1.0.2 один деплоймент.

Разраб захотел откатить. В репе для инфры выставил версию v1.0.1, но забыл вернуть второй деплоймент. И опять получили сломанное приложение
Ты проверяешь свой инкремент по отношению к другим уже stable приложениям
источник

AS

Anton Strukov in Kubernetes — русскоговорящее сообщество
И катишь если все ок
источник

AS

Anton Strukov in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
суть в том, что я не понимаю как при таком подходе добиться совместимости версий приложения и описаний инфры под нее.
Пример

Для версии v1.0.1 нужно было два деплоймента (в терминах k8s)
Для версии v1.0.2 один деплоймент.

Разраб захотел откатить. В репе для инфры выставил версию v1.0.1, но забыл вернуть второй деплоймент. И опять получили сломанное приложение
Что значат репа для инфы?
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Anton Strukov
Что значат репа для инфы?
чувак, ты ворвался слишком поздно, ты не в теме. Сори
источник

AS

Anton Strukov in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
чувак, ты ворвался слишком поздно, ты не в теме. Сори
Ага
источник

GG

George Gaál in Kubernetes — русскоговорящее сообщество
😂
источник

TK

Timofey Kirillov in Kubernetes — русскоговорящее сообщество
Евгений Омельченко
Это костыли поверх хелма же
просто для справки https://werf.io/documentation/reference/deploy_process/differences_with_helm.html

не надстройка поверх, а helm-compatible, никаких внешних посторонних бинарей - это разные вещи.
источник