Используя полный декларативный подход в Kubernetes
Мы можем использовать декларативный подход для создания и обновления ресурсов kubernetes, используя kubectl apply -f
Как мы можем сделать то же самое для переработки ресурсов, которые больше не нужны.
я использовал kubectl delete
, но это выглядит как необходимость, и иногда нам нужно будет удалять вещи в правильном порядке.
Есть ли способ всегда использовать kubectl apply
и он сам определяет, какие ресурсы оставить, а какие удалить. Прямо как в Terraform
,
Или мы должны сделать вывод, что в настоящее время декларативный подход работает только для создания и обновления ресурсов.
Случай использования:
Например, мы решили не предоставлять API-интерфейс K8S конечным пользователям, а вместо этого предоставить им хранилище, в котором они хранят и обновляют свои файлы yaml, которые бот может применять к кластеру при каждом обновлении при объединении запроса на извлечение. Так что нам нужно это декларативное удаление, чтобы нам не приходилось убирать вещи после пользователей. Terraform
Поставщик может быть решением, но в этом случае все будет зависеть от терраформирования, и пользователям потребуется изучить еще один инструмент вместо использования собственного формата k8s.
1 ответ
Обрезает, что они добавили декларативный подход для сокращения ресурсов, которые больше не присутствуют в манифестах yaml:
kubectl apply -f <directory/> --prune -l your=label
Слишком много предостережений, хотя.
В качестве альтернативы kubectl delete вы можете использовать kubectl apply для определения объектов, которые будут удалены после удаления их файлов конфигурации из каталога. Применить с помощью --prune запрашивает у сервера API все объекты, соответствующие набору меток, и пытается сопоставить возвращенные конфигурации живых объектов с файлами конфигурации объектов. Если объект соответствует запросу, и у него нет файла конфигурации в каталоге, и он имеет аннотацию последней примененной конфигурации, он удаляется.