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.
Configuración
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.
Conclusión
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 🙂