refactor: использование ClusterIP вместо NodePort
- Убрана логика патчинга NodePort для Prometheus, Grafana и Kiali - Сервисы теперь остаются с типом ClusterIP - Порты пробрасываются через extraPortMappings в Kind конфиге - Использованы стандартные порты: Prometheus 9090, Grafana 3000, Kiali 20001 - Более простой и надежный подход без ограничений NodePort диапазона
This commit is contained in:
@@ -48,15 +48,15 @@ kind_clusters:
|
|||||||
# Документация: https://devops.org.ru
|
# Документация: https://devops.org.ru
|
||||||
# Ingress HTTP: http://localhost:8081
|
# Ingress HTTP: http://localhost:8081
|
||||||
# Ingress HTTPS: https://localhost:8443
|
# Ingress HTTPS: https://localhost:8443
|
||||||
# Prometheus: http://localhost:30900
|
# Prometheus: http://localhost:9090
|
||||||
# Grafana: http://localhost:30000 (admin/admin)
|
# Grafana: http://localhost:3000 (admin/admin)
|
||||||
# Kiali: http://localhost:32001
|
# Kiali: http://localhost:20001
|
||||||
addon_ports:
|
addon_ports:
|
||||||
ingress_http: 8081
|
ingress_http: 8081
|
||||||
ingress_https: 8443
|
ingress_https: 8443
|
||||||
prometheus: 30900
|
prometheus: 9090
|
||||||
grafana: 30000
|
grafana: 3000
|
||||||
kiali: 32001
|
kiali: 20001
|
||||||
|
|
||||||
hosts:
|
hosts:
|
||||||
# Стандартный набор - 2 хоста для базового тестирования (стабильные ОС)
|
# Стандартный набор - 2 хоста для базового тестирования (стабильные ОС)
|
||||||
|
|||||||
@@ -142,27 +142,27 @@ def main():
|
|||||||
'protocol': 'TCP'
|
'protocol': 'TCP'
|
||||||
})
|
})
|
||||||
|
|
||||||
# Prometheus порт - мапим NodePort на hostPort
|
# Prometheus порт - пробрасываем изнутри кластера (9090) на внешний порт
|
||||||
if addon_ports.get('prometheus'):
|
if addon_ports.get('prometheus'):
|
||||||
port_mappings.append({
|
port_mappings.append({
|
||||||
'containerPort': addon_ports['prometheus'],
|
'containerPort': 9090, # Внутренний порт Prometheus
|
||||||
'hostPort': addon_ports['prometheus'],
|
'hostPort': addon_ports['prometheus'], # Внешний порт на хосте
|
||||||
'protocol': 'TCP'
|
'protocol': 'TCP'
|
||||||
})
|
})
|
||||||
|
|
||||||
# Grafana порт - мапим NodePort на hostPort
|
# Grafana порт - пробрасываем изнутри кластера (3000) на внешний порт
|
||||||
if addon_ports.get('grafana'):
|
if addon_ports.get('grafana'):
|
||||||
port_mappings.append({
|
port_mappings.append({
|
||||||
'containerPort': addon_ports['grafana'],
|
'containerPort': 3000, # Внутренний порт Grafana
|
||||||
'hostPort': addon_ports['grafana'],
|
'hostPort': addon_ports['grafana'], # Внешний порт на хосте
|
||||||
'protocol': 'TCP'
|
'protocol': 'TCP'
|
||||||
})
|
})
|
||||||
|
|
||||||
# Kiali порт - мапим NodePort на hostPort
|
# Kiali порт - пробрасываем изнутри кластера (20001) на внешний порт
|
||||||
if addon_ports.get('kiali'):
|
if addon_ports.get('kiali'):
|
||||||
port_mappings.append({
|
port_mappings.append({
|
||||||
'containerPort': addon_ports['kiali'],
|
'containerPort': 20001, # Внутренний порт Kiali
|
||||||
'hostPort': addon_ports['kiali'],
|
'hostPort': addon_ports['kiali'], # Внешний порт на хосте
|
||||||
'protocol': 'TCP'
|
'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"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")
|
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(f"✅ Кластер '{name}' готов!")
|
||||||
|
|
||||||
print("\n🎉 Все кластеры созданы!")
|
print("\n🎉 Все кластеры созданы!")
|
||||||
|
|||||||
Reference in New Issue
Block a user