Estoy implementando un clúster de Kubernetes en GCE usando Gitlab-CI. Me gustaría mantener el costo al mínimo: aquí está mi configuración actual:
- Los nodos se ejecutan en 3
f1-micro
instancias - Un pod del sistema que se ejecuta
Traefik
configurado con ServiceTypeLoadBalancer
- Comodín dns configurado
- 1
postgres
cápsula - 1 servidor web pod con
ingress
configurado para Traefik
Me gustaría reducir el costo de mi implementación. La mayor parte del costo reside en el balanceador de carga GCE. ¿Hay alguna forma de usar una dirección IP pública en lugar de un Load Balancer en GCE? Si es así, ¿puedo utilizar la dirección IP asignada al clúster (en lugar de reservar una IP estática)?
Para decirlo de otra manera, ¿hay alguna manera de vincular una ip efímera a un servicio de Kubernetes usando GCE sin un equilibrador de carga?
¿Hay alguna otra configuración que pueda hacer de manera diferente que reduzca el costo en general en GCE?
Respuestas:
Sí, a través de ExternalIPs. Tenga en cuenta que esto significará que su servicio dejará de funcionar si el nodo que ha dicho IP externo asignado falla, pero si solo está ejecutando 1 maestro, probablemente no le importe mucho.
Servicio de ejemplo:
La IP debe ser la IP interna de la instancia de GCE (esto se debe a que GCE DNAT envía el tráfico a las IP internas). El servicio debería ser accesible a través de la IP externa asignada del nodo.
Probablemente desee cambiar el servicio para su controlador de ingreso, de modo que pueda enrutar todas sus aplicaciones a través de una IP.
fuente
NodePort
versiónPrefiero no usar los equilibradores de carga en la nube, hasta que sea necesario, debido al costo y al bloqueo del proveedor.
En cambio, uso esto: https://kubernetes.github.io/ingress-nginx/deploy/
Es un pod que ejecuta un equilibrador de carga para usted. Esa página tiene notas de instalación específicas de GKE.
fuente