Tengo un proyecto NodeJS simple ejecutándose en un clúster K3s en una Raspberry Pi 4. El clúster tiene un servicio para exponerlo. El código es el siguiente...
spec: type: LoadBalancer ports: - protocol: TCP port: 3000 targetPort: 3000Quiero intentar usar el puerto 80 en lugar del 3000, así que intento...
spec: type: LoadBalancer ports: - protocol: TCP port: 80 targetPort: 3000Pero no puede usar el puerto.
Advertencia FailedScheduling 5m 0/1 nodos disponibles: 1 nodo(s) no tenían puertos libres para los puertos de pod solicitados.
¿Por qué tengo problemas?
Actualizar
Según la respuesta, intenté ...
pi@raspberrypi:~ $ sudo netstat -tulpn | grep :80 pi@raspberrypi:~ $ sudo ss -tulpn | grep :80 pi@raspberrypi:~ $Mi conjetura es que esta es una limitación de K3s o Pi.
Actualización 2
Cuando ejecuto kubectl get service --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 24d kube-system kube-dns ClusterIP 10.43.0.10 <none> 53/UDP,53/TCP,9153/TCP 24d kube-system metrics-server ClusterIP 10.43.48.200 <none> 443/TCP 24d kube-system traefik-prometheus ClusterIP 10.43.89.96 <none> 9100/TCP 24d kube-system traefik LoadBalancer 10.43.65.154 192.168.x.xxx 80:31065/TCP,443:32574/TCP 24d test-namespace app-tier LoadBalancer 10.43.190.179 192.168.x.xxx 3000:31500/TCP 4dk3s viene con un controlador de ingreso traefik preinstalado que se une a 80, 443 y 8080 en el host, aunque debería haberlo visto con ss o netstat
Debería ver este servicio si ejecuta:
kubectl get service --all-namespacesAunque deberías haberlo visto con netstat o ss si algo está usando el puerto si este es el caso. Pero mb, este servicio tampoco se implementó, pero de alguna manera bloquea a k3s para que no tome el puerto.
Otra cosa que se me ocurre: ¿está ejecutando la configuración sin raíz experimental?