Выбор ответа Junior Архитектура Kubernetes обновлено

apply против create

Вопрос

Чем kubectl apply -f deploy.yaml отличается от kubectl create -f deploy.yaml?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: apply создаёт объект или обновляет существующий; create падает, если объект есть. apply сравнивает файл с текущим объектом и применяет разницу, его можно запускать сколько угодно раз (идемпотентность), поэтому он основа GitOps и CI. create императивен и выдаст AlreadyExists при повторе.

Варианты ответа

  1. apply создаёт объект или обновляет существующий; create падает, если объект естьправильный ответ
  2. create быстрее, потому что не скачивает текущий объект, а в остальном они одинаковы
  3. apply работает только с Deployment и StatefulSet, остальное создаётся через create
  4. Ничем, это синонимы: apply оставлен для совместимости со старыми версиями kubectl

Разбор

apply сравнивает файл с текущим объектом и применяет разницу, его можно запускать сколько угодно раз (идемпотентность), поэтому он основа GitOps и CI. create императивен и выдаст AlreadyExists при повторе. Скорость одинакова, работают оба с любыми ресурсами.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме