Kubernetes Tercera Parte - Desplegando un POD dentro de nuestro cluster

Ahora que hemos llegado hasta aca, vamos de desplegar un POD Nginx en nuestro cluster y exponer un puerto para poder acceder, pero para eso tienen que tener un cluster Kubernetes, aqui les muestro como hacerlo : 

Kubernetes - Primera parte

y aqui

Kubernetes - Segunda parte

Ahora nos conectamos a nuestro Master y donde queramos creamos un archivo que llamaremos "nginx_pod.yml" le damos el nombre que queramos y dentro escribimos:

apiVersion: v1
kind: Pod
metadata:
  name: nginx-test
  labels:
    app: nginx
spec:
  containers:
    - name: nginx
      image: linuxserver/nginx
      ports:
        - containerPort: 80
          name: "nginx-http"

 

Guardamos y cerramos el archivo


Ahora creamos nuestro POD dentro de nuestro cluster, para eso ejecutamos:

xymox18@k8s-master:~/test$ kubectl apply -f nginx_pod.yml

 

Y ya esta, tenemos nuestro primer POD deplegado dentro de nuestro cluster, ahora vamos a utilisar el siguiente comando para ver nuestro POD:

xymox18@k8s-master:~/test$ kubectl get pods -o wide

 

Y aqui nos damos cuenta que estamos en un cluster, ahi podemos ver que hemos creado nuestro POD desde nuestro MASTER, pero nuesto POD se encuentra en nuestro k8s-slave-2, ese es el poder de un cluster, pero eso solo es el inicio, mas adelante veremos los conceptos de redundancias, alta disponibilidad, etc.

Ahora vamos a exponer un puerto para acceder a nuestro POD para eso vamos a crear un servicio para eso creamos un archivo al que llamaremos "service-nginx-port.yml" y dentro vamos a añadir :

apiVersion: v1
kind: Service
metadata:
  name: nginx-test   
spec:
  type: NodePort
  ports:
    - name: http
      port: 80
      nodePort: 30080
      targetPort: nginx-http
  selector:
    app: nginx


 

Y por ultimo creamos el servicio con el siguiente comando:

xymox18@k8s-master:~/test$ kubectl apply -f service-nginx-port.yml 


Ahora verificamos que nuestro servicio esta funcionando para eso usamos :

xymox18@k8s-master:~/test$ kubectl get service

Y vemos que nuestro cluster expone el puerto 30080 y que es redirigido al puerto 80 de nuestro pod nginx.

Para verificar vamos a un navegador y escribimos una IP de nuestro cluster seguido de 30080, por ejemplo la ip del master 192.168.1.120:30080 o la del slave 1 o 2 o 3


Y todas nos van a llevar a buena destinacion, esto es otra evidencia de que estamos dentro de un cluster, porque no importa la IP que usemos (de los nodos que integran nuestro cluster) siempre vamos a poder acceder a nuestro POD.

Bueno esto lo dejamos aqui, la proxima vez instalaremos un projecto real, digamos un Drupal(cms en PHP) con una base de datos Postgres o MySQL.

Comentarios