Saltar al contenido principal

🔗 Services

Los pods nacen y mueren, y con cada recreación la IP cambia. El Service crea una dirección fija frente a los pods, para que otras aplicaciones (o usted) siempre puedan acceder a ellos.

TipoQuién accedeCuándo usar
ClusterIPSolo dentro del clústerComunicación entre aplicaciones
NodePortDesde fuera, por la IP del node + puertoPruebas y accesos simples
LoadBalancerDesde fuera, por una IP propiaProducción, sin Ingress
info

Los Services se crean con kubectl. El Panel Nuvion se usa para liberar el acceso de red externo (paso 5).


🚀 Antes de comenzar​

🚀 1. Crear una aplicación de prueba​

kubectl create deployment web --image=nginx --replicas=2
kubectl get pods

Espere a que los dos pods estén Running.

🚀 2. Crear un Service interno (ClusterIP)​

kubectl expose deployment web --name=web-svc --port=80 --target-port=80
kubectl get svc web-svc

Anote el CLUSTER-IP mostrado.

🚀 3. Probar el acceso dentro del clúster​

kubectl run teste-curl --rm -it --image=curlimages/curl --restart=Never -- curl http://web-svc

Si aparece la página Welcome to nginx!, el Service está funcionando.

🚀 4. Crear un Service externo (NodePort)​

kubectl expose deployment web --name=web-nodeport --type=NodePort --port=80
kubectl get svc web-nodeport

En la columna PORT(S) aparece algo como 80:31245/TCP. El número después de los dos puntos (31245) es el puerto externo. Anote el suyo.

🚀 5. Liberar el puerto en la red​

Para acceder desde fuera, el puerto debe estar liberado y el node debe tener una IP accesible.

  1. Acceda a Computar > Grupos de seguridad y abra el grupo usado por los nodos del clúster.
  2. Agregue una regla de entrada, protocolo TCP, en el puerto anotado en el paso 4.
  3. Acceda a Computar > IPs flotantes y asocie una IP a uno de los workers, si aún no tiene.

Regla de entrada en el grupo de seguridad

🚀 6. Acceder a la aplicación​

En el navegador, abra http://IP-DEL-NODE:PUERTO (ejemplo: http://203.0.113.10:31245).

✅ Cómo saber si funcionó​

La página Welcome to nginx! se abre en el navegador.

❗ Problemas comunes​

SíntomaCausaSolución
La página no abre (timeout)Puerto no liberado o node sin IP accesibleRevise el paso 5
ENDPOINTS vacío en kubectl get endpoints web-svcEl Service no encontró podsVerifique que los pods estén Running
EXTERNAL-IP aparece como noneNormal para NodePortUse la IP del node

🧹 Limpieza​

kubectl delete svc web-svc web-nodeport
kubectl delete deployment web

➡️ Próximo paso: Ingress

🧠 ¿Dudas?​

¡Hable con nuestro equipo de soporte técnico de SaveinCloud!