Я пытаюсь запустить настройку пространства имен Kubernetes и развертывание приложения как часть конвейера. Обычно команды "применить" работают с идемпотентностью. Теперь, если я изменю ConfigMap, модули необходимо перезапустить, чтобы внести изменения. Но «применить» - развертывание не имеет никакого эффекта, поскольку в самом развертывании изменений не обнаружено. Комбинация «создать» - «удалить» работает, но требует дополнительной работы и нарушает сине-зеленое развертывание. Есть золотая середина?
Когда ты меняешь ConfigMap
контент без изменения названия, Deployment
не обнаруживает изменений и не создает новые поды.
Проблема уже исправлена и объединена, проверьте Вот. Однако это произошло относительно недавно (14 марта 2018 г.) и, возможно, ваша версия Kubernetes не содержит этого кода.
Вы можете использовать следующий обходной путь для принудительного развертывания для воссоздания новых модулей с обновленными ConfigMap
- просто добавьте или обновите аннотацию к подам. Будет запущено развертывание для создания новой версии модулей:
kubectl patch deployment $DEPLOYMENT_NAME -p \
"{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"