cluster dump 2026-07-15: ingress, kube-vip, drhider state
Deploy drhider / validate (push) Waiting to run
Deploy drhider / validate (push) Waiting to run
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
# Cluster Dump — 2026-07-15 17:00 MSK
|
||||
|
||||
## 1. НОДЫ (4 шт)
|
||||
|
||||
| Нода | Роль | Taints |
|
||||
|------|------|--------|
|
||||
| iot-naeel-control-plane-xb699 | control-plane | `NoSchedule:control-plane` |
|
||||
| iot-naeel-workers-vqphm-6f74n | workers | нет |
|
||||
| iot-naeel-workers-vqphm-bhbvs | workers | нет |
|
||||
| iot-naeel-workers-vqphm-v8zq4 | workers | нет |
|
||||
|
||||
## 2. INGRESS (shturval-ingress-controller)
|
||||
|
||||
### Поды (2 реплики)
|
||||
|
||||
| Под | Нода | Возраст |
|
||||
|-----|------|---------|
|
||||
| ...86jsp | control-plane-xb699 | ~6ч |
|
||||
| ...jm4kl | workers-vqphm-v8zq4 | ~6ч |
|
||||
|
||||
### Сервис
|
||||
- Тип: LoadBalancer
|
||||
- External IP: 185.247.187.151
|
||||
- `externalTrafficPolicy: Cluster`
|
||||
- NodePorts: 80:30739, 443:32391
|
||||
|
||||
### Ingress ConfigMap
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| keep-alive | **10** |
|
||||
| client-body-timeout | **10** |
|
||||
| client-header-timeout | **10** |
|
||||
| proxy-body-size | **8m** |
|
||||
| upstream-keepalive-connections | **0** |
|
||||
| use-http2 | false |
|
||||
| worker-processes | 4 |
|
||||
| error-log-level | info |
|
||||
|
||||
### Helm
|
||||
- Chart: shturval-ingress-controller-2.12.1
|
||||
- Ревизия 9 (сегодня 11:53) — `replicaCount: 2`, hostPort enabled
|
||||
- Ревизия 8 (сегодня 02:00) — то же самое
|
||||
- Более старых ревизий нет (почищены)
|
||||
|
||||
### Affinity (ingress deploy)
|
||||
```yaml
|
||||
preferredDuringScheduling:
|
||||
- weight: 10 → избегать control-plane
|
||||
- weight: 80 → предпочитать node-role: ingress
|
||||
- weight: 50 → предпочитать node-role: infra
|
||||
```
|
||||
|
||||
### События (каждые 51 сек!)
|
||||
```
|
||||
Warning SyncLoadBalancerFailed failed to ensure load balancer: no address pools could be found
|
||||
Normal EnsuringLoadBalancer Ensuring load balancer
|
||||
```
|
||||
|
||||
## 3. KUBE-VIP
|
||||
|
||||
### DaemonSet: shturval-vip (4 пода, на ВСЕХ 4 нодах)
|
||||
- Image: r.shturval.tech/kube-vip:v1.0.0
|
||||
- ARP mode: `vip_arp: true`
|
||||
- Election: `svc_election: true`
|
||||
- Leaderelection: `vip_leaderelection: false`
|
||||
- Lease: `sht-uservip-cp-lock`
|
||||
|
||||
### Cloud Provider: shturval-vip-provider (1 под, на bhbvs)
|
||||
- Image: r.shturval.tech/kubevip/kube-vip-cloud-provider:v0.0.12
|
||||
- Ищет ConfigMap: `kubevip` в неймспейсе `kube-system`
|
||||
|
||||
### ❌ ConfigMap `kubevip` в `kube-system` — **ПУСТОЙ!**
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: kubevip
|
||||
namespace: kube-system
|
||||
data: {} # <-- НЕТ ДАННЫХ
|
||||
```
|
||||
|
||||
**Это причина ошибки «no address pools could be found»!**
|
||||
|
||||
## 4. DRHIDER (pythonk8s)
|
||||
|
||||
### Деплой
|
||||
- 1 реплика
|
||||
- Ревизия: 49
|
||||
- Инит-контейнер: клонирует из Git, потом pip install + python app.py
|
||||
- Ресурсы: 500m CPU, 1Gi RAM
|
||||
- Проба: TCP :5000
|
||||
|
||||
### ❌ PodAffinity (добавлен сегодня 16:46, непрошеный)
|
||||
```yaml
|
||||
requiredDuringScheduling:
|
||||
podAffinity → ingress pod на той же ноде
|
||||
```
|
||||
|
||||
### Сервис
|
||||
- ClusterIP: 10.102.171.63
|
||||
- Port 80 → targetPort 5000
|
||||
- `internalTrafficPolicy: Cluster`
|
||||
|
||||
### Ingress (drhider)
|
||||
- Host: drhider.pythonk8s.dev.nubes.ru
|
||||
- Аннотации: proxy-body-size=1024m, connect=120s, read/send=600s
|
||||
- TLS: letsencrypt-prod
|
||||
|
||||
### Поды
|
||||
| Под | Нода | Возраст |
|
||||
|-----|------|---------|
|
||||
| pythonk8s-6698c6c78-dkwsq | workers-vqphm-v8zq4 | ~15 мин |
|
||||
|
||||
Drhider на одной ноде с ingress-подом jm4kl.
|
||||
|
||||
## 5. ВСЕ INGRESS-РЕСУРСЫ
|
||||
|
||||
| Хост | Неймспейс | Возраст |
|
||||
|------|-----------|---------|
|
||||
| drhider.pythonk8s.dev.nubes.ru | 20a75175-... | 4д |
|
||||
| loadtest.pythonk8s.dev.nubes.ru | 9039a501-... | 5д |
|
||||
| contractor.pythonk8s.dev.nubes.ru | b4523aba-... | 7ч |
|
||||
| capire.kube5s.ru | default | 54д |
|
||||
| grafana.kube5s.ru | grafana | 66д |
|
||||
| keycloak.k8c.ru | keycloak | 96д |
|
||||
| qu.kube5s.ru | shared-sqs | 93д |
|
||||
| iot.kube5s.ru | sless | 94д |
|
||||
| terra.k8c.ru | terra | 92д |
|
||||
|
||||
## 6. CILIUM
|
||||
|
||||
4 пода (по одному на ноду), все Running. MTU был изменён на 1400 (по STATE).
|
||||
|
||||
## 7. КЛЮЧЕВЫЕ НАХОДКИ
|
||||
|
||||
### 🔴 ConfigMap `kubevip` пустой
|
||||
kube-vip-cloud-provider не может найти address pools → каждые 51 сек ошибка SyncLoadBalancerFailed. При этом `185.247.187.151` работает через ARP-mode kube-vip DaemonSet (не через cloud provider). Вероятно, это не fatal, но указывает на недонастроенную интеграцию.
|
||||
|
||||
### 🔴 Ingress ConfigMap отличается от ожидаемого
|
||||
- keep-alive: 10 (должен быть 75)
|
||||
- client-body-timeout: 10 (должен быть 60)
|
||||
- client-header-timeout: 10 (должен быть 30)
|
||||
- proxy-body-size: 8m (должен быть 1024m)
|
||||
|
||||
Но для drhider это переопределено в аннотациях ingress-ресурса.
|
||||
|
||||
### 🟡 Ingress 2 реплики на 4 нодах с kube-vip
|
||||
kube-vip анонсирует 185.247.187.151 на ВСЕХ 4 нодах, но ingress-поды только на 2. При `externalTrafficPolicy: Cluster` трафик на ноды без ingress: SNAT → кросс-нода → риск conntrack RST.
|
||||
|
||||
### 🟡 Helm: 2 апгрейда сегодня
|
||||
Ревизии 8 (02:00) и 9 (11:53) сегодня. Кто-то обновлял ingress. `replicaCount: 2` в обеих.
|
||||
|
||||
### 🟢 Аннотации drhider ingress — хорошие
|
||||
proxy-body-size=1024m, connect=120s, read/send=600s. Переопределяют дефолты ConfigMap.
|
||||
|
||||
### 🟢 Cilium — стабильный
|
||||
4 пода, все Running, MTU 1400.
|
||||
Reference in New Issue
Block a user