Я хотел бы добавить несколько вещей к ответу night-gold . Я бы сказал, что нет лучшего и худшего способа изменить ваши ресурсы. Все зависит от конкретной ситуации и ваших потребностей.
Стоит подчеркнуть основное отличие между редактированием и исправлением , а именно первое - это интерактивный метод и второй мы можем назвать пакетный метод , который в отличие от первого может быть легко использован в скриптах. Просто представьте, что вам нужно внести изменения в десятки или даже несколько сотен различных kubernetes ресурсов / объектов , и гораздо проще написать простой скрипт, в котором вы можете patch всех этихресурсы в автоматическом режиме. Открытие каждого из них для редактирования не будет очень удобным и эффективным. Короткий пример:
kubectl patch resource-type resource-name --type json -p '[{"op": "remove", "path": "/spec/someSection/someKey"}]'
Хотя поначалу это может показаться сложным и не очень удобным в использовании по сравнению с интерактивным редактированием и удалением определенной строки из определенного раздела вручную, на самом деле это очень быстро иэффективный метод, который может быть легко реализован в скриптах и может сэкономить вам много работы и времени при работе со многими объектами.
Что касается команды apply
, вы можете прочитать в документации :
apply управляет приложениями через файлы, определяющие ресурсы Kubernetes. Он создает и обновляет ресурсы в кластере с помощью kubectl apply. Это рекомендуемый способ управления приложениями Kubernetes на производстве.
Это также дает вам возможность изменить рабочую конфигурацию, повторно применив ее из обновленного манифеста yaml
, например, pullиз git-репозитория.
Если под update
вы подразумеваете rollout
(ранее известный как обновляемое обновление), как вы можете видеть в документации , у него совершенно другая функция. В основном используется для обновления развертываний. Вы не используете его для внесения изменений в ресурсы произвольного типа.