我在 GKE 集群中使用 HAProxy 作为入口控制器。并将 HAProxy 服务公开为 LoadBalancer 服务(内部)。
最近,我遇到了一个问题,HA-Proxy 服务更改了它的 EXTERNAL-IP,并且流量停止路由到 HAProxy。这个问题在不同的日子里发生了多次(现在它已经停止了)。我必须手动将新的外部 IP 添加到该负载均衡器的前端,以允许流量到 HAProxy。
HAProxy 有两个 pod 运行,并且都运行了好几天,它们的日志中没有任何内容。我认为它与服务或 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