Я использую HAProxy в качестве входящего контроллера в своих кластерах GKE. И выставляем сервис HAProxy как сервис LoadBalancer (внутренний).
Недавно у меня возникла проблема, когда служба HA-Proxy изменила свой ВНЕШНИЙ IP-адрес, и трафик перестал маршрутизироваться на HAProxy. Эта проблема возникала несколько раз в разные дни (теперь она исчезла). Мне пришлось вручную добавить этот новый внешний IP-адрес к интерфейсу этого Loadbalancer, чтобы разрешить трафик на HAProxy.
Для HAProxy было запущено два модуля, и оба работали несколько дней, и в их журналах ничего не было. Я предполагаю, что это было связано с Service или GCP LB, а не с самим HAProxy.
Боюсь, что у меня нет журналов, связанных с этим.
Я до сих пор не знаю, что привело к изменению IP-адреса службы. Поскольку последних изменений не было, и кластер и все службы работали в течение многих дней правильно, это произошло внезапно.
Кто-нибудь раньше сталкивался с подобной проблемой? Или что я могу сделать, чтобы избежать такой проблемы в будущем?
Что могло привести к изменению IP-адреса?
Так настроен мой сервис:
---
apiVersion: v1
kind: Service
metadata:
labels:
run: haproxy-ingress
name: haproxy-ingress
namespace: haproxy-controller
annotations:
cloud.google.com/load-balancer-type: "Internal"
networking.gke.io/internal-load-balancer-allow-global-access: "true"
cloud.google.com/network-tier: "Premium"
spec:
selector:
run: haproxy-ingress
type: LoadBalancer
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
- name: stat
port: 1024
protocol: TCP
targetPort: 1024
Нашел несколько логов:
Warning SyncLoadBalancerFailed 30m (x3570 over 13d) service-controller Error syncing load balancer: failed to ensure load balancer: googleapi: Error 409: IP_IN_USE_BY_ANOTHER_RESOURCE - IP '10.17.129.17' is already being used by another resource.
Normal EnsuringLoadBalancer 3m33s (x3576 over 13d) service-controller Ensuring load balancer