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