Введение
Если вы работаете с Kubernetes, скорее всего, kubectl
— ваш постоянный спутник. Это швейцарский нож DevOps-инженера: мощный, гибкий, но временами… утомительный.
А что если можно сделать его использование быстрее, удобнее и даже немного приятнее?
В этой статье я поделюсь полезными трюками kubectl
, которые регулярно использую сам. Независимо от того, новичок вы или уже глубоко погружены в кластеры, наверняка найдёте здесь что-то полезное.
1. Быстро переключайтесь между кластерами
Управляете несколькими кластерами? Постоянно вручную переключать контексты — неудобно:
kubectl config use-context my-cluster
kubectl config get-contexts
Можно использовать kubectx для более удобного переключения.
2. Кастомный вывод ресурсов
Стандартный вывод kubectl может быть избыточным. Вот как настроить отображение под свои нужды:
kubectl get pods -o custom-columns="NAME:.metadata.name,STATUS:.status.phase"
3. Просмотр изменений ресурсов в реальном времени
Хотите отслеживать, как изменяются поды
kubectl get pods --watch
4. Отладка работающего Pod
Нужно разобраться, что происходит внутри пода?
kubectl exec -it my-pod -- /bin/sh
5. Применение YAML из stdin
Иногда хочется быстро протестировать изменения:
cat pod.yaml | kubectl apply -f -
6. Проброс порта Pod на localhost
Хотите обратиться к сервису напрямую с локальной машины?
kubectl port-forward svc/my-service 8080:80
7. Временный alias
Устали постоянно печатать kubectl?
alias k='kubectl'
8. Вывод в YAML/JSON
Полезно для отладки и написания скриптов:
kubectl get pod mypod -o yaml
kubectl get pod mypod -o json
Заключение
Эффективное использование kubectl — это не только про экономию времени. Это про сохранение фокуса, снижение рутинных действий и более глубокое понимание того, как работает кластер.
Эти трюки стали частью моего повседневного DevOps-набора — и сэкономили мне кучу времени. Надеюсь, помогут и вам.
А какие трюки с kubectl используете вы? Делитесь — всегда рад пополнить арсенал.
Хочешь прокачаться ещё сильнее? Посмотри базовое руководство по Helm — мощному инструменту для управления приложениями в Kubernetes.