Usando Kubertenes

Kubertenetes usa un fichero de configuración llamado Kubernetes Deployment Object, donde describimos en formato YAML el despliegue a realizar.

un ejemplo del mismo sería el siguiente fichero nginx-despliegue.yaml

apiVersion : apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
    selector:
      matchLabels:
       app: nginx
    replicas: 2
    template:
      metada:
        labels:
          app: nginx
      spec:
          containers:
          - name: nginx
            image: nginx:1.7.9
            ports:
            - containerPort:80

Para realizar este despliegue ejecutaríamos en el manager

kubectl apply -f nginx-despliegue.yaml

Para comprobar lo que ha realizado ejecutaríamos

kubectl deescribe deployment nginx-despliegue

Para comprobar los pods

kubectl get pods -l app=nginx
kubectl describe pod nginx-despliegue-75654585

Para quitar el despliegue

kubectl delete deployment nginx-despliegue

Un ejemplo sin usar un fichero de despliegue

Vamos a desplegar un servidor NGINX directamente

  • Desplegamos la imgen de nginx

kubectl create deployment nginx --image=nginx 

  • Creamos un service para poder acceder desde nuestro navegador

kubectl create service nodeport nginx --tcp=80:80

  • Comprobamos en que puerto de salida nos ha expuesto el pod

kubectl get svc
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP        4m
nginx        NodePort    10.96.25.233   <none>        80:32746/TCP   6s

Finalmente,abrimos nuestro navegador y conectamos a la url http://xxx.xxx.xxx:32746 (IP del nodo manager:puerto por donde lo expone). Al conectar desde el navegador deberías de ver la imagen de bienvenida del servidor ngnix

Ejemplo de despliegue de un chat

Referencias