Creación de Services en kubernetes

Índice

Los servicios en Kubernetes permiten a otros pods o al usuario acceder al servicio que ofrece otro pod.

Para crear un servicio, primero es necesario aplicar un despliegue en el cluster de Kubernetes con la aplicación a la que el servicio debe permitir el acceso.

En este caso, se utiliza el despliegue de esta aplicación:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: guestbook
  labels:
    app: guestbook
    tier: frontend
spec:
  replicas: 3
  selector:
    matchLabels:
      app: guestbook
      tier: frontend
  template:
    metadata:
      labels:
        app: guestbook
        tier: frontend
    spec:
      containers:
      - name: contenedor-guestbook
        image: iesgn/guestbook
        ports:
          - name: http-server
            containerPort: 5000

A partir de esta aplicación, se crea el servicio.

apiVersion: v1
kind: Service
metadata:
  name: guestbook
  labels:
    app: guestbook
    tier: frontend
spec:
  type: NodePort
  ports:
  - port: 80 
    targetPort: http-server
  selector:
    app: guestbook
    tier: frontend

Para crear el servicio se usal kubectl apply.

kubectl apply -f guestbook-service.yaml

Al crear el servicio se obtiene un puerto entre el 30.000 y el 40.000. Así, se puede acceder a la aplicación accediendo a la IP del cluster en ese puerto. Para conocer la IP del cluster en Minikube se usa minikube ip. Para conocer el puerto en el que el servicio ofrece la aplicación se usa kubectl get service.

Esta aplicación necesita conectarse a una base de datos. Para ello se usa un servicio de tipo ClusterIP.

apiVersion: v1
kind: Service
metadata:
  name: redis
  labels:
    app: redis
    tier: backend
spec:
  type: ClusterIP
  ports:
  - port: 6379
    targetPort: redis-server
  selector:
    app: redis
    tier: backend

Así, la aplicación puede acceder a la base de datos y funcionar de forma adecuada.

comments powered by Disqus

Relacionados

Cómo enrutar una red en OpenStack

OpenStack es un proyecto de cloud computing (computación en la nube) de software libre y código abierto. En este post se usa esta infraestructura para crear un escenario de enrutamiento.

Leer

Correo electrónico cifrado con Thunderbird

En este tutorial se muestra cómo configurar el cliente de correo electrónico Mozilla Thunderbird para enviar y recibir correos electrónicos cifrados con un par de claves pública y privada generadas con GPG.

Leer

Despliegue de aplicaciones escritas en Python

En este post se muestra un ejemplo de flujo de trabajo para desplegar aplicaciones escritas en Python desde el entorno de desarrollo hasta el entorno de producción.

Leer