Estoy tratando de agregar un clúster local de Kubernates a mi grupo de GitLab para implementaciones de CI/CD. Empecé ejecutando el siguiente comando:
kubectl proxy --address 0.0.0.0 --accept-hosts '.*'
Lo probé ejecutando curl http://localhost:8001/api y ejecutando curl http://192.168.1.2:8001/api desde otra máquina en la misma red. Proxy estaba disponible en mi red local.
El siguiente paso fue hacer que el proxy estuviera disponible en Internet detrás de kubernates.example.com . Para eso he configurado NGINX de la siguiente manera:
server { server_name kubernates.example.com; listen 443 ssl; listen 80; include ssl_standart_conf; location / { proxy_pass http://192.168.1.2:8001/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } Ejecutar curl https://kubernates.example.com/api devolvió el siguiente error:
invalid upgrade response: status code 200Registros de proxy de Kubernates
E0225 22:33:50.944018 1642369 upgradeaware.go:312] Proxy upgrade error: invalid upgrade response: status code 200 E0225 22:33:50.944060 1642369 proxy_server.go:144] Error while proxying request: invalid upgrade response: status code 200Bien, he logrado resolver el problema. La siguiente configuración de nginx hizo un truco
server { server_name kubernates.example.com; listen 443 ssl; listen 80; include ssl_standart_conf; location / { proxy_pass http://192.168.1.2:8001/; proxy_set_header Host $host; } }