refactor: использование ClusterIP вместо NodePort

- Убрана логика патчинга NodePort для Prometheus, Grafana и Kiali
- Сервисы теперь остаются с типом ClusterIP
- Порты пробрасываются через extraPortMappings в Kind конфиге
- Использованы стандартные порты: Prometheus 9090, Grafana 3000, Kiali 20001
- Более простой и надежный подход без ограничений NodePort диапазона
This commit is contained in:
Сергей Антропов
2025-10-26 09:11:32 +03:00
parent e2b9d94075
commit 87002cb9b3
2 changed files with 15 additions and 38 deletions

View File

@@ -142,27 +142,27 @@ def main():
'protocol': 'TCP'
})
# Prometheus порт - мапим NodePort на hostPort
# Prometheus порт - пробрасываем изнутри кластера (9090) на внешний порт
if addon_ports.get('prometheus'):
port_mappings.append({
'containerPort': addon_ports['prometheus'],
'hostPort': addon_ports['prometheus'],
'containerPort': 9090, # Внутренний порт Prometheus
'hostPort': addon_ports['prometheus'], # Внешний порт на хосте
'protocol': 'TCP'
})
# Grafana порт - мапим NodePort на hostPort
# Grafana порт - пробрасываем изнутри кластера (3000) на внешний порт
if addon_ports.get('grafana'):
port_mappings.append({
'containerPort': addon_ports['grafana'],
'hostPort': addon_ports['grafana'],
'containerPort': 3000, # Внутренний порт Grafana
'hostPort': addon_ports['grafana'], # Внешний порт на хосте
'protocol': 'TCP'
})
# Kiali порт - мапим NodePort на hostPort
# Kiali порт - пробрасываем изнутри кластера (20001) на внешний порт
if addon_ports.get('kiali'):
port_mappings.append({
'containerPort': addon_ports['kiali'],
'hostPort': addon_ports['kiali'],
'containerPort': 20001, # Внутренний порт Kiali
'hostPort': addon_ports['kiali'], # Внешний порт на хосте
'protocol': 'TCP'
})
@@ -257,29 +257,6 @@ def main():
run_cmd(f"KUBECONFIG=/tmp/istio-kubeconfig-{name}.yaml helm upgrade --install monitoring prometheus-community/kube-prometheus-stack --namespace monitoring --set grafana.adminPassword=admin --set grafana.defaultDashboardsTimezone=browser --wait --timeout 600s")
run_cmd(f"kubectl --server=https://{name}-control-plane:6443 --insecure-skip-tls-verify -n monitoring rollout status deploy/monitoring-grafana --timeout=300s")
# Настраиваем NodePort для аддонов
addon_ports = cluster.get('addon_ports', {})
if addon_ports:
print("\n🔌 Настройка NodePort для аддонов")
if 'prometheus' in addon_ports:
port = addon_ports['prometheus']
print(f" - Prometheus: {port}")
patch_json = f'[{{"op": "replace", "path": "/spec/type", "value":"NodePort"}},{{"op": "replace", "path": "/spec/ports/0/nodePort", "value":{port}}}]'
run_cmd(f"kubectl --server=https://{name}-control-plane:6443 --insecure-skip-tls-verify patch svc -n monitoring monitoring-kube-prom-prometheus --type='json' -p='{patch_json}'")
if 'grafana' in addon_ports:
port = addon_ports['grafana']
print(f" - Grafana: {port}")
patch_json = f'[{{"op": "replace", "path": "/spec/type", "value":"NodePort"}},{{"op": "replace", "path": "/spec/ports/0/nodePort", "value":{port}}}]'
run_cmd(f"kubectl --server=https://{name}-control-plane:6443 --insecure-skip-tls-verify patch svc -n monitoring monitoring-grafana --type='json' -p='{patch_json}'")
if 'kiali' in addon_ports:
port = addon_ports['kiali']
print(f" - Kiali: {port}")
patch_json = f'[{{"op": "replace", "path": "/spec/type", "value":"NodePort"}},{{"op": "replace", "path": "/spec/ports/0/nodePort", "value":{port}}}]'
run_cmd(f"kubectl --server=https://{name}-control-plane:6443 --insecure-skip-tls-verify patch svc -n istio-system kiali --type='json' -p='{patch_json}'")
print(f"✅ Кластер '{name}' готов!")
print("\n🎉 Все кластеры созданы!")