Crear un Ingress Controller en un clúster

Prerequisites

  • Configurar Ingress Controller.

  • Create deployments.

  • Expose deployments.

minikube addons enable ingress
kubectl create deployment web --image=gcr.io/google-samples/hello-app:1.0
kubectl expose deployment web --type=NodePort --port=8080
kubectl create deployment web2 --image=gcr.io/google-samples/hello-app:2.0
kubectl expose deployment web2 --port=8080 --type=NodePort

Acceso a servicios con Ingress

Una vez que se tienen los servicios a enrutar por el Ingress se define el archivo demo-ingress.yaml.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    - host: hello-world.info
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: web
                port:
                  number: 8080
		  - path: /v2
            pathType: Prefix
            backend:
              service:
                name: web2
                port:
                  number: 8080
			

Este archivo define un Ingress con la ruta hello-world.info para el servicio web y hello-wold.info/v2 para el servicio web2.

Para probar localmente se deberá ejecutar lo siguiente y copiar la IP asignada al Ingress que se creó.

kubectl get ingress

Agregar el host y la IP al final del archivo /etc/hosts.

echo "192.168.59.114  hello-world.info" >> /etc/hosts

También es posible ssh al clúster y probar con curl.

Enlaces de referencia

Last updated