Difficulty: intermedio
Estimated Time: 15 minutos

En este ejercicio crearemos varios tipos de servicios y veremos sus particularidades.

Christian Axel Schmidt Dick aka Mr. Kubernetes [email protected]

Enhorabuena, has completado el ejercicio!

Services

Step 1 of 3

1. Crear un servicio del tipo ClusterIP

En este caso necesitaremos crear un pod además del servicio. Veamos el archivo pod1.yaml con el siguiente contenido:

apiVersion: v1
kind: Pod
metadata:Con el editor de texto o directamente desde el terminal, crear u
  name: nginx
  labels:
    app: nginx
spec:
  containers:
    - name: nginx-container
      image: nginx:1.7.9
      ports:
      - containerPort: 80

y un servicio service1.yaml

kind: Service
apiVersion: v1
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx # Pod al que enrutará este servicio
  ports:
  - name: http
    protocol: TCP
    port: 80

Ahora desplegamos el pod y el servicio que acabamos de mostrar:

kubectl create -f pod1.yaml -f service1.yaml

Comprobamos lo que acabamos de desplegar:

kubectl get pods

y

kubectl get svc

Una vez se ha desplegado, podemos acceder al servicio nginx-service a traves de su CLUSTER_IP y puerto con:

export CLUSTER_IP=$(kubectl get svc --namespace default nginx-service -o jsonpath="{.spec.clusterIP}")
curl -v $CLUSTER_IP:80

Y veremos por pantalla el html que devuelve el pod nginx

Comprobemos nuestro servicio en detalle:

kubectl describe svc nginx-service

o también:

kubectl get svc nginx-service -o yaml

Ahora borramos el servicio del cluster:

kubectl delete svc nginx-service

Si volvieramos a ejecutar el comando curl anterior, veríamos que ya no tenemos acceso al pod.

curl -v $CLUSTER_IP:80