Viene de Medium power by Christopher Grant
Parte 1: Discusión en la que se explica cómo usaría un Global clúster con Google LoadBalancer for Ingress.
Código fuente
El código fuente para este tutorial se puede encontrar en GitHub aquí
Allí encontrarás:
- / app - el código de las aplicaciones utilizadas en la demostración
- / cluster - una única secuencia de comandos para aprovisionar un clúster federado
- / deploy - los archivos yaml k8s que usaremos en la demo
Configurar el clúster
He cubierto esto en detalle en Global Kubernetes en 3 pasos y lo he vuelto a proporcionar en el archivo README. Este artículo es más sobre cómo usarlo, así que no entraré en el proceso de configuración aquí.
Implementar las aplicaciones y el Ingress
Primero, toma el repositorio y clónalo localmente
git clone https://github.com/cgrant/global-k8s-ingress-with-gce-controller cd global-k8s-ingress-with-gce-controller
Para este ejemplo, he proporcionado ejemplos de aplicaciones de Python en el directorio /apps. Los container esta construidos prebuilt y también los publiqué en el Docker Hub. Debería poder personalizar el código o cambiar sus propias imágenes.
Implementa las aplicaciones
kubectl apply -f deploy/app-with-context.yaml kubectl apply -f deploy/simple-echo.yaml
Como se menciona en la Parte 1, deberá establecer explícitamente los valores de NodePort en la Implementación. Ya los he configurado para `30048` y` 30050`
Revise la página de cargas de trabajo en Google Cloud Console
Crea una IP global
Una vez que se despliegan los módulos de aplicaciones, podemos ver cómo los une con un Ingress.
Lo primero que debemos hacer es crear una IP global para Global LoadBalancer.
Esto es crítico para que el Ingrss funcione en múltiples clusters. las IP efímeras predeterminadas son solo regionales y no permitirán una federación adecuada
Crea una IP global llamada ingress-ip
gcloud compute addresses create ingress-ip — global
Implementar el Ingress
Ahora despliega el Ingress mismo
kubectl apply -f deploy/ingress.yaml
Esto llevará un tiempo, aproximadamente 5 minutos, para que se creen los cargadores balanceados en todo el mundo y para que pasen todas las comprobaciones de estado.
Puede revisar el progreso en la página Descubrimiento y equilibrio de carga en la consola de la nube
Una vez que el equilibrador de carga está activo, puede acceder a las siguientes URL:
/
/foo
/foo/bar
/eco
/echo/anyString
Desde la página Descubrimiento y equilibrio de carga en la consola de la nube, haga clic en el nombre de Load Balancer para más detalles. Luego desplácese hacia abajo a los backends.
Habrá un backend para cada servicio en su ingreso yaml. Continúa y haz clic en uno de los back-ends
A medida que el tráfico fluya a su nuevo servicio, puede ver el desglose de la ubicación y otras métricas en esta página.
Eso es todo, ¡estás listo!
Por su cuenta
Eso es lo corto y facil de la demo. Asegúrese de explorar el código para comprender la mecánica. Pruebe también actualizaciones por su cuenta
Continúa y despliega tu propio servicio, modifica el ingreso.yaml y ejecuta
kubectl apply -f deploy/ingress.yaml
Los nuevos servicios en el equilibrador de carga tardan unos minutos en aparecer, pero los cambios en los servicios existentes son bastante rápidos
Pruébalo actualizando la imagen en la aplicación Despliegue a algo nuevo, por ejemplo, tal vez actualice `simple-echo.yaml`
spec: containers: — name: simple-echo image: cgrant/simple-echo-server ```
to
spec: containers: — name: simple-echo image: cgrant/simple-echo-server:version1
Luego aplicar
kubectl apply -f deploy/simple-echo.yaml
¡Los contenedores se actualizarán rápidamente y ya está listo!
Me gusta mucho la posibilidad de usar productos nativos de Google Cloud con Kubernetes. Quita gran parte de la incomodidad de la infraestructura a la vez que me proporciona herramientas sólidas administradas para mis aplicaciones.
Espero que hayas disfrutado.
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.