ℹ️ Работая с Kubernetes, многие применяют манифесты "вслепую" с помощью kubectl apply. Но как насчёт того, чтобы точно знать, какие изменения вы вносите? А теперь добавим сюда ещё и возможность точечно редактировать ресурсы без редактирования YAML-файлов.
🔍 1. Предпросмотр изменений с kubectl diff
Перед применением манифестов используйте команду:
kubectl diff -f deployment.yaml❔ Эта команда покажет, какие именно изменения будут внесены в кластер. Вы сможете избежать ненужных изменений и откатить потенциально опасные правки до их применения.
✨ 2. Динамическое внесение изменений с JSON Patch
Иногда возникает необходимость временно внести небольшие изменения в существующий ресурс, не правя исходный YAML-файл. Это можно сделать с помощью kubectl patch.
Например, вы хотите изменить количество реплик в существующем Deployment:
kubectl patch deployment my-deployment -n my-namespace --type='json' -p='[{"op": "replace", "path": "/spec/replicas", "value": 5}]'ℹ️ Преимущества:
- Нет необходимости редактировать YAML.
- JSON Patch позволяет четко описать минимальные изменения (например, добавить, удалить или заменить поле).
🦊 3. Интеграция kubectl diff в CI/CD
Чтобы не вносить ошибки в production, добавьте проверку kubectl diff в ваш pipeline. Это позволит DevOps-инженерам заранее видеть, что изменится, и согласовать это с командой:
deploy:
script:
- kubectl diff -f deployment.yaml
- kubectl apply -f deployment.yaml✳️ Этот подход особенно актуален для тех, кто работает с большими инфраструктурами или CI/CD-пайплайнами, где каждая секунда на счету.
tags: #полезно #k8s
🧭 @recura_tech



