refactor: удален скрипт manage_hosts.py и все упоминания

- Удален скрипт scripts/manage_hosts.py
- Удалены все вызовы из Makefile
- Удалены упоминания из документации
- Обновлена документация по Ingress - теперь требуется ручное добавление в /etc/hosts
- Убрано автоматическое управление /etc/hosts (не состоятельное решение)
This commit is contained in:
Сергей Антропов
2025-10-26 11:56:14 +03:00
parent df7473fbd9
commit 0ffe1f1a90
4 changed files with 36 additions and 278 deletions

View File

@@ -114,50 +114,7 @@ python3 scripts/portforward.py clear
---
### 4. `manage_hosts.py`
**Назначение:** Автоматическое управление записями в `/etc/hosts` для Ingress ресурсов.
**Принцип работы:**
1. **Получение списка Ingress:**
- Получает kubeconfig из контейнера `k8s-controller`
- Выполняет `kubectl get ingress --all-namespaces`
- Извлекает все хосты из Ingress правил
2. **Работа с /etc/hosts:**
- Использует метку `#k8s` для различения автоматических и ручных записей
- Добавляет записи в формате: `127.0.0.1 <hostname> #k8s`
- Удаляет только записи с меткой `#k8s`
3. **Автоматизация:**
- Вызывается автоматически после:
- `make k8s create` (добавление)
- `make k8s destroy` (удаление)
- `make k8s manifest apply/delete` (обновление)
- `make k8s helm apply/delete/update` (обновление)
**Команды:**
- `add` - добавляет все Ingress хосты в /etc/hosts
- `remove` - удаляет все записи с меткой #k8s
- `cleanup` - удаляет записи если кластер недоступен
- `list` - показывает текущие k8s записи
**Пример использования:**
```bash
sudo python3 scripts/manage_hosts.py add
sudo python3 scripts/manage_hosts.py list
sudo python3 scripts/manage_hosts.py remove
```
**Безопасность:**
- Работает только с записями, помеченными `#k8s`
- Не трогает ручные записи пользователя
- Требует sudo для редактирования `/etc/hosts`
---
### 5. `k8s_status.py`
### 4. `k8s_status.py`
**Назначение:** Детальный отчет о состоянии Kubernetes кластера.

View File

@@ -291,9 +291,24 @@ make k8s manifest apply kubernetes ./nginx-deployment.yaml
## Управление Ingress
### Автоматическое управление /etc/hosts
### Доступ к приложениям через Ingress
При создании Ingress ресурсов, их хосты автоматически добавляются в `/etc/hosts` с меткой `#k8s`:
Для доступа к приложениям по доменным именам нужно вручную добавить записи в `/etc/hosts`:
```bash
# Добавить запись в /etc/hosts
echo "127.0.0.1 grafana.local #k8s" | sudo tee -a /etc/hosts
# Очистить DNS кеш macOS
sudo killall -HUP mDNSResponder
```
После этого приложение будет доступно по адресу:
```
http://grafana.local:8081
```
**Пример манифеста Ingress:**
```yaml
apiVersion: networking.k8s.io/v1
@@ -315,23 +330,10 @@ spec:
number: 80
```
После применения этого манифеста в `/etc/hosts` автоматически добавится:
```
127.0.0.1 grafana.local #k8s
```
### Доступ к приложению
После установки Ingress и портов, приложение доступно по адресу:
```
http://grafana.local
```
### Удаление записей
Записи автоматически удаляются при:
- Удалении кластера (`make k8s destroy`)
- Удалении Ingress манифеста (`make k8s manifest delete`)
**Важно:**
- Записи в `/etc/hosts` нужно добавлять вручную
- Используйте порт 8081 для HTTP и 8443 для HTTPS
- Для удаления записей используйте sudo
---
@@ -729,15 +731,18 @@ make k8s create kubernetes
**Решение:**
```bash
# Проверьте /etc/hosts
cat /etc/hosts | grep k8s
# Добавьте вручную
sudo scripts/manage_hosts.py add
# Проверьте Ingress
make k8s shell kubernetes
kubectl get ingress --all-namespaces
# Добавьте запись в /etc/hosts вручную
echo "127.0.0.1 grafana.local #k8s" | sudo tee -a /etc/hosts
# Очистите DNS кеш
sudo killall -HUP mDNSResponder
# Проверьте доступность
curl http://grafana.local:8081
```
### Helm чарты не устанавливаются