Bienvenidos a la página personal de José Domingo Muñoz Rodríguez, aquí podrás encontrar…

Accede a las entradas de mi blog donde escribo de Informática y Educación.

Blog Pledin

Accede a los materiales de los cursos que he impartido.

Plataforma Pledin

Accede a los contenido de los módulos de FP que estoy impartiendo en la actualidad.

Módulos FP

Últimos posts...


Recursos de Kubernetes: Services

Los servicios (services) nos permiten acceder a nuestra aplicaciones.

  • Un servicio es una abstracción que define un conjunto de pods que implementan un micro-servicio. (Por ejemplo el servicio frontend).
  • Ofrecen una dirección virtual (CLUSTER-IP) y un nombre que identifica al conjunto de pods que representa, al cual nos podemos conectar.
  • La conexión al servicio se puede realizar desde otros pods o desde el exterior (mediante la generación aleatoria de un puerto).

services

Los servicios se implementan con iptables. El componente kube-proxy de Kubernetes se comunica con el servidor de API para comprobar si se han creado nuevos servicios.

Cuando se crea un nuevo servicio, se le asigna una nueva ip interna virtual (IP-CLUSTER) que permite conexiones desde otros pods. Además podemos habilitar el acceso desde el exterior, se abre un puerto aleatorio que permite que accediendo a la IP del cluster y a ese puerto se acceda al conjunto de pods. Si tenemos más de un pod el acceso se hará siguiendo una política round-robin.

Seguir leyendo...

Kubernetes: Desplegando la aplicación GuestBook (Parte 1)

Vamos a desplegar una aplicación llamada Guestbook que trabaja junto a una base de datos redis. Por lo tanto vamos a desplegar un frontend, nuestra aplicación y un backend la base de datos.

Despliegue del frontend

Para empezar vamos a crear el Deployment de nuestra aplicación que tenemos en el fichero frontend-deployment.yaml:

apiVersion: extensions/v1beta1
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: guestbook
        image: gcr.io/google_containers/guestbook:v3
        ports:
          - name: http-server
            containerPort: 3000

Como vemos se van a generar 3 replicas, la imagen de la aplicación la bajamos del registro de google y se indica el puerto de la aplicación. Para crear el despliegue:

kubectl create -f frontend-deployment.yaml 
deployment.extensions "guestbook" created

kubectl get deploy
NAME        DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
guestbook   3         3         3            3           5s

kubectl get rs
NAME                  DESIRED   CURRENT   READY     AGE
guestbook-bb55b9bcf   3         3         3         5s

kubectl get pods
NAME                        READY     STATUS    RESTARTS   AGE
guestbook-bb55b9bcf-2dn8t   1/1       Running   0          5s
guestbook-bb55b9bcf-5t5wg   1/1       Running   0          5s
guestbook-bb55b9bcf-lbvb8   1/1       Running   0          5s
Seguir leyendo...

Kubernetes: Desplegando la aplicación Mediawiki

mediawiki

mediawiki es una aplicación escrita en PHP que nos permite gestionar una wiki. Vamos a hacer un despliegue en nuestro cluster de kubernetes.

En este ejemplo vamos a crear el Deployment sin utilizar su definición en Yaml, con la siguiente instrucción:

kubectl run mediawiki --image=mediawiki --record 
deployment.apps "mediawiki" created

kubectl get deploy
NAME        DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
mediawiki   1         1         1            0           5s

kubectl get rs
NAME                   DESIRED   CURRENT   READY     AGE
mediawiki-85bf9d6bd7   1         1         0         5s

kubectl get pods
NAME                         READY     STATUS    RESTARTS   AGE
mediawiki-85bf9d6bd7-97bhg   1/1       Running   0          25s

Utilizando la instrucción kubectl run se crea un Deployment con un RecordSet asociado que arranca un pod. La opción --record nos va a permitir guardar las actualizaciones del Deployment como annotations en la definición Yaml del mismo. Por lo tanto si vemos la definición del Deployment:

kubectl get deployments mediawiki -o yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
    kubernetes.io/change-cause: kubectl run mediawiki --image=mediawiki --record=true
...
Seguir leyendo...

Más posts...

Últimos cursos...

Blogroll





cc

Licencia

Licencia: Puedes copiar y modificar todos los contenidos, pero siempre respetando los términos de la licencia CC-BY-SA.

Ver