Despliegue de aplicaciones en un clúster TKG

Buenas chic@s! En el día de hoy venimos con un post mas cortito, pero que no por ello deja de ser interesante. En este post veremos el despliegue de aplicaciones dentro en un clúster TKG, además comprobaremos que es accesible, desde dentro de nuestro clúster.

Antes de ponernos a desplegar cualquier aplicación, vamos a comprobar que nuestro clúster TKG no presenta ningún problema. Por ello lanzamos el siguiente comando:

Kubectl get nodes

Como podemos observar, todos nuestros control plane y workers nodes están en estado » Ready», por lo tanto, podemos continuar.

Para desplegar la aplicación, he optado por un clásico por como es un nginx. Este YAML nos desplegara la ultima imagen de nginx que haya disponible, y nos creara 3 replicas . Aquí os dejo el YAML.

apiVersion: v1
kind: Namespace
metadata:
  name: web
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
---        
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  namespace: web
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30007

Una vez ejecutemos el siguiente comando se nos desplegara la aplicación nginx con su 3 replicas, nos creara el namespace «web» y por ultimo nos creara el servicio del tipo Node port.

kubectl apply -f xxx.yaml

Ahora nos falta comprobar que el YAML que hemos ejecutado nos ha creado los que estábamos esperando, para ello bastara con lanzar el siguiente comando:

kubectl get all -n web(namespace donde hemos desplegado la aplicacion)

Podemos observar como nos ha creado todo de manera satisfactoria.

Ahora vamos a ir un poco mas allá y vamos a comprobar que realmente el servidor web nginx es accesible. Para ellos listamos los pods, y nos quedaremos con los nombres y las IPs asignadas a las replicas.

Ahora lanzamos el siguiente comando para poder ejecutar un consola bash dentro del pod.

kubectl exec -n web -it "nombre_del_pod" --sh (comando)

Una vez que estemos dentro del pod lanzamos el comando curl apuntan ando a una de las ips de los pods especificando el puerto 80, y como vemos nos sale un mensaje «Welcome to nginx», por lo tanto la aplicación esta funcionando dentro de nuestra cluster de Kubernetes.

Podríamos hacer un curl al servicio «nginx-service.web.cluster.local y nos iría balanceando las peticiones a los diferentes pods que contiene el deployment nginx.

Hasta aquí hemos llegado, en este post hemos ido un poco mas suave, pero en el siguiente post volveremos a coger velocidad. En el veremos como publicar aplicaciones hacia el mundo exterior mediante NSXA-LB aka AVI. Nada mas por hoy, un saludo 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *