Это нормально, когда два контроллера K8S изменяют один и тот же ресурс одновременно?

У меня есть несколько CRD, и каждый из них должен редактировать Container.Spec в кластере. Например, ENV, ярлыки и т. Д.

Ничего страшного, если ресурсом управляет более одного контроллера?

Каковы возможные подводные камни этого подхода?


person ubombi    schedule 24.02.2020    source источник


Ответы (1)


Да, один и тот же объект может обновляться несколькими контроллерами. Я думаю, что на данный момент объект Pod обновили почти дюжина. Основная проблема, с которой вы можете столкнуться, - это конфликты записи. Обычно в операторе вы выполняете get, затем происходит что-то, затем вы выполняете обновление (обычно для подресурса статуса для случая корневого объекта). Это может привести к гонке. Я бы порекомендовал использовать Server Side Apply, чтобы уменьшить эти проблемы, он обрабатывает отслеживание каждого поля, а не целые объекты через серийные номера.

person coderanger    schedule 24.02.2020