Желаемое состояние Kubernetes может быть обновлено / изменено с помощью двух парадигм:
- Либо императивно с помощью команд kubectl adho c (
k set
, k create
, k run
, k rollout
, ..) - Или декларативно с использованием YAML-манифестов с одним
k apply
Второй способ идеален для лечения ваших k8s проявляется как Код, затем вы можете поделиться этим Кодом с командой, отредактировать его, например, до Git, и продолжать отслеживать его историю, используя методы GitOps (модели ветвления, Проверка кода, CI / CD).
Однако , первый способ не может быть рассмотрен командой, так как эта adho c -команда будет выполняться одним человеком, и никто не может знать причину изменения .
Чтобы преодолеть проблема первого способа, опция --record
заключается в том, чтобы связать причину root изменения как аннотацию с именем kubernetes.io/change-cause
, и значение этой аннотации является самой императивной командой.
(примечание ниже это из официального делать c* 102 9 *)
Примечание: вы можете указать флаг --record, чтобы записать команду, выполняемую в аннотации ресурса kubernetes.io/change-cause. Записанное изменение полезно для будущего самоанализа. Например, чтобы увидеть команды, выполняемые в каждой версии развертывания.
В качестве вывода:
- Теоретически
--record
не является обязательным - Практически, это обязательно для обеспечения надежных изменений и соответствия процессу SRE и культуре DevOps.