docs: полная переработка документации по Kubernetes

- Создана подробная документация по скриптам (k8s-scripts.md)
- Полностью переписана документация kubernetes-kind.md
- Добавлено содержание с навигацией
- Добавлены разделы: Helm, манифесты, Ingress, port-forward
- Добавлена архитектура взаимодействия
- Добавлены Best Practices и Troubleshooting
- Обновлена справка в Makefile
- Удалены устаревшие команды (manifest update, addon)
- Добавлена ссылка на документацию по скриптам
This commit is contained in:
Сергей Антропов
2025-10-26 10:23:16 +03:00
parent fcf3f33e80
commit eca556cca7
3 changed files with 889 additions and 565 deletions

View File

@@ -1160,32 +1160,6 @@ k8s:
echo "❌ Не удалось получить kubeconfig"; \
rm -f $$KUBECONFIG_FILE; \
fi;; \
addon) \
echo "📦 Установка аддона..."; \
PRESET_ARG="$(word 3, $(MAKECMDGOALS))"; \
MANIFEST_ARG="$(word 4, $(MAKECMDGOALS))"; \
if [ -z "$$PRESET_ARG" ]; then \
echo "❌ Ошибка: Укажите пресет"; \
echo "💡 Пример: make k8s addon kubernetes https://example.com/manifest.yaml"; \
exit 1; \
fi; \
if [ -z "$$MANIFEST_ARG" ]; then \
echo "❌ Ошибка: Укажите URL манифеста"; \
echo "💡 Пример: make k8s addon kubernetes https://example.com/manifest.yaml"; \
exit 1; \
fi; \
CONTAINER_NAME=k8s-controller; \
if ! docker ps | grep -q $$CONTAINER_NAME; then \
echo "❌ Контейнер $$CONTAINER_NAME не запущен"; \
echo "💡 Запустите: make k8s create $$PRESET_ARG"; \
exit 1; \
fi; \
CLUSTER_NAME=$$(docker exec $$CONTAINER_NAME kind get clusters | head -1); \
echo "📥 Установка аддона из $$MANIFEST_ARG..."; \
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; kubectl --server=https://\$${CLUSTER_NAME}-control-plane:6443 --insecure-skip-tls-verify apply -f $$MANIFEST_ARG"; \
echo "✅ Аддон установлен"; \
echo "📝 Обновление Ingress хостов..."; \
sudo scripts/manage_hosts.py add 2>/dev/null || echo "⚠️ Не удалось обновить Ingress хосты (требуется sudo)";; \
nodes) \
echo "🖥️ Просмотр узлов кластера..."; \
PRESET_ARG="$(word 3, $(MAKECMDGOALS))"; \
@@ -1245,14 +1219,9 @@ k8s:
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; kubectl --server=https://\$${CLUSTER_NAME}-control-plane:6443 --insecure-skip-tls-verify delete -f $$MANIFEST_ARG"; \
echo "📝 Обновление Ingress хостов..."; \
sudo scripts/manage_hosts.py add 2>/dev/null || echo "⚠️ Не удалось обновить Ingress хосты (требуется sudo)";; \
update) \
echo "🔄 Обновление манифеста: $$MANIFEST_ARG"; \
docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; kubectl --server=https://\$${CLUSTER_NAME}-control-plane:6443 --insecure-skip-tls-verify apply -f $$MANIFEST_ARG --force"; \
echo "📝 Обновление Ingress хостов..."; \
sudo scripts/manage_hosts.py add 2>/dev/null || echo "⚠️ Не удалось обновить Ingress хосты (требуется sudo)";; \
*) \
echo "❌ Неизвестная команда: $$MANIFEST_CMD"; \
echo "💡 Доступные команды: apply, delete, update"; \
echo "💡 Доступные команды: apply, delete"; \
exit 1;; \
esac;; \
helm) \
@@ -1433,17 +1402,15 @@ k8s:
echo " make k8s start [cluster] - запустить остановленный кластер"; \
echo " 💡 Можно указать имя кластера или запустить все"; \
echo ""; \
echo " make k8s status [cluster] - показать статус кластеров"; \
echo " 💡 Можно указать имя конкретного кластера"; \
echo " make k8s status [preset] - детальный отчет о состоянии кластера"; \
echo " 💡 Показывает: узлы, pods, сервисы, Ingress, события, Helm релизы и т.д."; \
echo " 💡 Требует: пресет"; \
echo " 💡 Пример: make k8s status kubernetes"; \
echo ""; \
echo " make k8s config [cluster] - получить kubeconfig для подключения"; \
echo " 💡 Сохраняет: kubeconfig в корне проекта"; \
echo " 💡 Можно указать имя конкретного кластера"; \
echo ""; \
echo " make k8s addon [preset] [url] - установить аддон из манифеста"; \
echo " 💡 Требует: пресет и URL манифеста"; \
echo " 💡 Пример: make k8s addon kubernetes https://example.com/manifest.yaml"; \
echo ""; \
echo " make k8s nodes [preset] - показать узлы кластера"; \
echo " 💡 Требует: пресет"; \
echo " 💡 Пример: make k8s nodes kubernetes"; \
@@ -1453,7 +1420,7 @@ k8s:
echo " 💡 Пример: make k8s shell kubernetes"; \
echo ""; \
echo " make k8s manifest [cmd] [preset] [url] - работа с манифестами"; \
echo " 💡 Команды: apply, delete, update"; \
echo " 💡 Команды: apply, delete"; \
echo " 💡 Пример: make k8s manifest apply kubernetes https://example.com/deploy.yaml"; \
echo ""; \
echo " make k8s helm [cmd] [preset] [release] [chart] - работа с Helm"; \
@@ -1475,7 +1442,7 @@ k8s:
echo " make k8s config kubernetes # получить kubeconfig для кластера"; \
echo " export KUBECONFIG=kubeconfig # использовать конфиг"; \
echo " kubectl get nodes # проверить узлы"; \
echo " make k8s addon kubernetes https://example.com/manifest.yaml # установить аддон"; \
echo " make k8s manifest apply kubernetes https://example.com/manifest.yaml # установить манифест"; \
echo " make k8s stop kubernetes # остановить кластер"; \
echo " make k8s start kubernetes # запустить кластер"; \
echo " make k8s destroy kubernetes # удалить кластер с пресетом kubernetes";; \
@@ -1579,10 +1546,13 @@ help:
@echo " make k8s destroy [preset] - удалить Kind кластер"
@echo " make k8s start [preset] - запустить Kind кластер"
@echo " make k8s stop [preset] - остановить Kind кластер"
@echo " make k8s status [preset] - показать статус кластера"
@echo " make k8s status [preset] - детальный отчет о состоянии кластера"
@echo " make k8s nodes [preset] - показать узлы кластера"
@echo " make k8s config [preset] - получить kubeconfig для подключения"
@echo " make k8s addon [preset] [url] - установить аддон из манифеста"
@echo " make k8s manifest [cmd] [preset] [url] - работа с манифестами (apply, delete)"
@echo " make k8s helm [cmd] [preset] [release] [chart] - работа с Helm"
@echo " make k8s helmrepo [cmd] [preset] [name] [url] - управление Helm репозиториями"
@echo " make k8s portforward [cmd] - управление port-forward (create, list, clear)"
@echo " make k8s shell [preset] - открыть shell в контейнере k8s"
@echo ""
@echo "💡 ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ:"