Servicios

Los servicios son la manera que tiene Kubernetes de exponer los servicios de red de los pods. Existen tres tipos de servicios ClusterIP, NodePort y LoadBalancer.
Los tres tipos de servicio aportan una IP interna del cluster de Kubernetes, balanceo de carga y permiten resolver el servicio por nombre (DNS) con una URL del tipo ‘.namespace.svc.cluster.local'.
Los servicios del tipo ‘NodePort' además también aportan un puerto público accesible desde fuera del cluster. Los servicios del tipo ‘LoadBalancer' solo están disponible en alguna nubes públicas como Google, AWS, etc. y aportan también una IP pública.
Ejemplo de servicio "NodePort" para la app: web. Modifica el fichero "myapp.yml" añadiendo:
---
apiVersion: v1
kind: Service
metadata:
name: service1
spec:
type: NodePort
selector:
app: web
ports:
- protocol: TCP
port: 80
targetPort: 80
# Aplica los cambios
kubectl apply -f myapp.yml
# comprueba
kubectl get all
NAME READY STATUS RESTARTS AGE
pod/myapp 1/1 Running 0 15m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 44h
service/service1 NodePort 10.96.146.193 <none> 80:31926/TCP 15m