Comunicar dos microservicios en un clúster de Kubernetes
Primero es necesario crear una implementación y un servicio para comunicación:
apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp1
spec:
replicas: 1
selector:
matchLabels:
app: webapp1
template:
metadata:
labels:
app: webapp1
spec:
containers:
- name: webapp1
image: katacoda/docker-http-server:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: web-app-service
spec:
selector:
app: webapp1
ports:
- protocol: TCP
port: 80
Guardar como web-app-service.yaml
y ejecutar el siguiente comando:
kubectl create -f web-app-service.yaml
Cuando se ejecuta un Pod dentro de un Node, el kubelet le agrega un conjunto de variables de entorno que incluyen el HOST y el PORT de cada servicio en ejecución:
{SVCNAME}_SERVICE_HOST` y `{SVCNAME}_SERVICE_PORT
.
Si el nombre de servicio es web_app_service
luego se obtendrán las variables de entorno: WEB_APP_SERVICE_SERVICE_HOST
and WEB_APP_SERVICE_SERVICE_PORT
Luego, es posible pasarlas como variables de entorno del segundo servicio, y el clúster las mantendrá actualizadas, incluso si cambia el HOST y/o el PORT.
Enlaces de referencia
PreviousUsar secrets para configurar una implementaciónNextCrear un Ingress Controller en un clúster
Last updated