Как сделать непрерывную доставку с помощью Kubernetes?

Я пытаюсь запустить настройку пространства имен Kubernetes и развертывание приложений как часть конвейера. Обычно команды "применить" работают с идемпотентностью. Теперь, если я изменю ConfigMap, модули необходимо перезапустить, чтобы внести изменения. Но «применить» - развертывание не имеет никакого эффекта, поскольку в самом развертывании изменений не обнаружено. Комбинация «создать» - «удалить» работает, но требует дополнительной работы и нарушает сине-зеленое развертывание. Есть ли золотая середина?

2
задан 29 May 2018 в 22:43
1 ответ

Когда вы изменяете содержимое ConfigMap, не меняя его имени, Deployment не обнаруживает изменений и не создает новых стручков.

Проблема уже исправлена и объединена, пожалуйста, проверьте здесь. Однако, это произошло сравнительно недавно (14 марта 2018 года) и, возможно, ваша версия Kubernetes не содержит такого кода.

Вы можете использовать следующий обходной путь для того, чтобы подтолкнуть Deployment к воссозданию новых подов с помощью обновленной ConfigMap - просто добавьте или обновите аннотацию подов. Это подтолкнет Deployment к созданию новой версии pods:

kubectl patch deployment $DEPLOYMENT_NAME -p \
"{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"
2
ответ дан 3 December 2019 в 11:25

Теги

Похожие вопросы