meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
virtualizacion:kubernetes:service [2020/10/24 15:18] – creado lcvirtualizacion:kubernetes:service [2023/01/18 14:37] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 ===== Service ===== ===== Service =====
 Con los **Service**  Kubernetes nos permite utilizar una única ip y un único nombre dns para un conjunto de pods que definamos mediante etiquetas (label) Con los **Service**  Kubernetes nos permite utilizar una única ip y un único nombre dns para un conjunto de pods que definamos mediante etiquetas (label)
 +Tipos de servicio:
 +  * Clusterip -> Es el tipo por defecto. Crea una ip virtual dentro del cluster. Solo podemos acceder internamente entre distintos servicios, para acceder desde el exterior tenemos que usar **kubectl proxy**
 +  * NodePort ->expone un puerto (por defecto entre: 30000-32767) del nodo para que podamos acceder desde el exterior. Para acceder usamos la ip del servidor master y el puerto asignado
 +  * LoadBalancer -> Sólo está soportado en servidos de nube pública (AWS, GKE, etc)
 +
 +
 +Ejemplo
 +<sxh yaml>
 +apiVersion: apps/v1
 +kind: Deployment
 +metadata:
 +  name: deployment-test
 +  labels:
 +    app: front
 +spec:
 +  replicas: 3
 +  selector:
 +    matchLabels:
 +      app: front
 +  template:
 +    metadata:
 +      labels:
 +        app: front
 +    spec:
 +      containers:
 +      - name: nginx
 +        image: nginx:alpine
 +---
 +apiVersion: v1
 +kind: Service              # Definimos el Service 
 +metadata:
 +  name: mi-servicio
 +  labels:
 +    app: front
 +spec:
 +  type: ClusterIP       #tipo de servicio
 +  selector:
 +    app: front
 +  ports:
 +    - protocol: TCP
 +      port: 8080                  # Puerto en donde tenemos el service la escucha de las peticiones
 +      targetPort: 80           # Puerto d elos pods donde enviar las peticiones que llegan al service
 +      </sxh>
 +==== Comandos ====
 +== Mostrar los servicios ==
 +<sxh>kubectl get svc</sxh>
 +== Ver los services con una determinada etiqueta ==
 +<sxh>kubectl get svc -l app=<etiqueta></sxh>
 +
 +== Mostrar los endpoints ==
 +<sxh>kubectl describe endpoint <nombreservicio></sxh>
 +
 +== Crear un service desde la línea de comandos ==
 +<sxh>kubectl expose nginx/nginx --port=80 --type=NodePort</sxh>
 +==== Referencias ====
 +  * https://kubernetes.io/docs/concepts/services-networking/service/
 +  * https://github.com/ricardoandre97/k8s-resources/tree/master/service
 +  * https://refactorizando.com/clusterip-vs-loadbalancer-vs-nodeport-vs-ingress-en-kubernetes/
 +  * https://www.josedomingo.org/pledin/2018/11/recursos-de-kubernetes-services/