Estoy implementando una aplicación web con Google Kubernetes Engine y quiero que sea accesible a través de un equilibrador de carga en una dirección IP estática existente que controlo como parte del mismo proyecto en Google Cloud Platform, porque el nombre de dominio que quiero usar Ya apunta a esta IP.
El archivo yaml que utilicé para el pod es:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
labels:
app: my-app
spec:
containers:
- name: my-container
image: gcr.io/my-project/my-app:latest
Puedo configurar un equilibrador de carga usando:
apiVersion: v1
kind: Service
metadata:
name: my-load-balancer
spec:
ports:
- port: 80
targetPort: 80
selector:
app: my-app
type: LoadBalancer
Esto proporciona una IP externa en la que se puede acceder a la aplicación, pero no puedo encontrar ninguna forma de configurarla para usar la IP que quiero. La documentación de servicios menciona una configuración spec.clusterIP, pero esto no parece estar relacionado con la IP externa. Del mismo modo, una vez que se configura el equilibrador de carga, el campo status.loadBalancer.ingress.ip del servicio se establece en su dirección IP externa, pero esto no parece ser una configuración configurable.
Como alternativa, intenté crear manualmente una regla de reenvío en la consola de Google Compute Engine para dirigir el tráfico desde mi dirección IP estática al grupo objetivo configurado por Kubernetes, pero cuando intento conectarme, la conexión se rechaza.
¿Hay alguna forma de hacer lo que quiero: exponer un pod Kubernetes (o controlador de replicación) en el motor Google Kubernetes en una dirección IP estática elegida?
Buenas noticias. Esto se solucionará en Kubernetes v1.1. Puede establecer el
service.spec.loadBalancerIP
campo en una IP que sepa que posee.Anterior:
Esta es una característica que cayó por las grietas. Se suponía que debía funcionar (e incluso podría haber funcionado en algún momento), pero no se probó bien y se rompió en el camino y luego se diseñó accidentalmente (temporalmente).
Está en mi lista de cosas para solucionar después de 1.0.
https://github.com/GoogleCloudPlatform/kubernetes/issues/10323
fuente