向集群添加新节点后,Kubernetes LoadBalancer服务停止响应

时间:2019-10-30 23:39:13

标签: kubernetes load-balancing

我们正在GKE(Google Kubernetes Engine版本1.13.10)中运行Kubernetes集群。它是一个区域群集,每个区域以两个节点(总共六个节点)开始。我们在此群集上运行了一些服务,包括一些Web服务和Kerberos服务。

最近,我们将每个区域的节点数从2个更改为3个(因此现在有9个节点)。完成此操作后,将无法访问Kerberos服务。

一些细节:Kerberos服务在StatefulSet中位于具有静态IP地址的两个服务(UDP和TCP)后面的三个Pod上运行。该服务是一个LoadBalancer,它使用本地外部流量策略,因此我们可以更轻松地记录客户端的IP地址。

当我们添加额外的节点时,Kerberos服务记录了以下事件:

  Type    Reason               Age                From                Message
  ----    ------               ----               ----                -------
  Normal  UpdatedLoadBalancer  53m (x2 over 56m)  service-controller  Updated load balancer with new hosts

pod继续运行,但是服务的外部终结点不再是必需的:远程登录到终结点时,另一端没有任何显示。重新启动吊舱即可解决问题。

这是TCP服务的定义:

kind: Service
metadata:
  annotations:
    external-dns.alpha.kubernetes.io/hostname: kdc.example.org
  name: kdc-tcp
  namespace: kdc
spec:
  clusterIP: 10.8.18.71
  externalTrafficPolicy: Local
  healthCheckNodePort: 32447
  loadBalancerIP: 35.101.23.134
  ports:
  - name: kerberos-tcp
    nodePort: 32056
    port: 88
    protocol: TCP
    targetPort: 88
  selector:
    app: kdc
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 35.101.23.134

为什么添加一些额外的节点会导致这种情况发生?将来如何避免这个问题?

0 个答案:

没有答案