Kubernetes має багато прихованих можливостей, які можуть значно полегшити ваше життя. Ось 15 секретних трюків Kubernetes, які допоможуть підвищити вашу продуктивність і ефективність!
1. Перезапускати Pods без їх видалення
kubectl rollout restart deployment -n
Перезапускає всі pods у деплойменті без необхідності їх вручну видаляти.
2. Швидко отримати доступ до оболонки Pod без точного імені
kubectl exec -it $(kubectl get pods -o=jsonpath='{.items[0].metadata.name}') -- /bin/sh
Відкриває сеанс оболонки всередині першого працюючого pod.
3. Запуск одноразового Pod для налагодження без створення YAML файлу
kubectl run debug-pod --rm -it --image=busybox -- /bin/sh
Запускає тимчасовий pod для налагодження, який автоматично видаляється після завершення сеансу.
4. Отримання реального часу використання ресурсів Pod
kubectl top pod -n
Показує використання процесора та пам'яті всіх працюючих pod в певному просторі імен (namespace).
5. Дізнатися, чому Pod зависає в Pending або CrashLoopBackOff
kubectl describe pod -n
Показує детальні події та помилки, пов'язані з pod.
6. Переглянути всі доступні API ресурси у вашому кластері
kubectl api-resources
Перелічує всі об'єкти Kubernetes, включаючи CRD, сервіси та секрети.
7. Доступ до Kubernetes кластера без встановленого kubectl
ssh -L 8001:127.0.0.1:8001 user@remote-server
kubectl proxy
Використовує перенаправлення портів через SSH для доступу до кластера віддалено.
8. Налагодження мережевого трафіку між Pods
kubectl exec -it -- tcpdump -i eth0 -nn -s 0 -w /tmp/capture.pcap
kubectl cp :/tmp/capture.pcap ./capture.pcap
Збирає мережеві пакети всередині pod для подальшого аналізу.
9. Отримати список невикористовуваних Persistent Volume Claims (PVC)
kubectl get pvc --all-namespaces | grep -v $(kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.volumes[*].persistentVolumeClaim.claimName}" | tr ' ' '\n' | sort -u)
Визначає сирі PVC, які не використовуються жодним pod.
10. Швидко порт-форвардити сервіс на вашу локальну машину
kubectl port-forward svc/ 8080:80 -n
Перенаправляє порт віддаленого сервісу на ваш локальний комп'ютер.
11. Знайти Pods, що працюють на конкретному вузлі
kubectl get pods --all-namespaces -o wide | grep
Перелічує всі pods, які працюють на певному вузлі.
12. Миттєво видалити завислий Pod
kubectl delete pod --grace-period=0 --force -n
Примусово видаляє завислі або ті, що знаходяться в процесі завершення pod.
13. Отримати зовнішнє IP Pod напряму
kubectl get svc -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
Отримує зовнішнє IP-адресу балансованого сервісу.
14. Застосувати зміни без необхідності набирати -f
kubectl apply -k .
Використовує kustomization для застосування всіх файлів в поточному каталозі.
15. Переглянути повний YAML конфігурацію працюючого ресурсу
kubectl get pod -o yaml
Відображає повну YAML конфігурацію працюючого pod.
Оволодійте цими трюками Kubernetes і виведіть ваші навички управління кластерами на новий рівень!
Перекладено з: Top 15 Secret Kubernetes Tricks You Didn’t Know