Servicios

Los servicios en Kubernetes son una abstracción que define un conjunto de pods que implementan una aplicación y que pueden ser accedidos a través de una dirección IP y un puerto. Los servicios permiten la comunicación entre los diferentes componentes de una aplicación y también permiten la exposición de aplicaciones a través de la red.

Comandos generales

Crear un servicio

Para crear un servicio en Kubernetes, podemos utilizar el comando kubectl expose pod <nombre_del_pod>. Por ejemplo, para exponer un servicio que redirige el tráfico al puerto 80 de un pod, podemos ejecutar el siguiente comando:

kubectl expose pod mi-web-apache --port=80 --target-port=80 --type=NodePort --name=mi-servicio-apache-svc

Hay 3 tipos de servicios en Kubernetes:

Ver servicios

Para ver los servicios en un clúster de Kubernetes, podemos utilizar el comando kubectl get services:

kubectl get services

NOTA: usa -o wide para ver más detalles de los servicios.

Para ver los detalles de un servicio en particular, podemos utilizar el comando kubectl describe service <nombre_del_servicio>:

kubectl describe service mi-servicio-apache-svc

Eliminar un servicio

Para eliminar un servicio, podemos utilizar el comando kubectl delete service <nombre_del_servicio>:

kubectl delete service mi-servicio-apache-svc

Aplicar mediante manifiesto

También podemos crear un servicio utilizando un manifiesto en formato YAML o JSON. Para ello, creamos un manifiesto con la definición del servicio y luego lo aplicamos con el comando kubectl apply -f <archivo_de_configuracion>.

kubectl apply -f Kubernetes/manifests/mi-servicio.yaml

Port-forwarding

Podemos redirigir el tráfico de un puerto de un pod o un servicio a un puerto local utilizando el comando kubectl port-forward <nombre_del_servicio> <puerto_local>:<puerto_pod>. Por ejemplo, para redirigir el tráfico del puerto 80 de un pod al puerto 9000 de local, podemos ejecutar el siguiente comando:

kubectl port-forward mi-servicio-apache-svc 9000:80