GKE LoadBalancer静态IP

时间:2020-01-06 00:16:38

标签: kubernetes load-balancing google-kubernetes-engine gke-networking

我在集群的同一区域中创建了一个区域静态IP,并尝试将其与LoadBalancer一起使用:

Wordpress

但是,我不知道为什么会收到此错误:

---
apiVersion: v1
kind: Service
metadata:
  name: ambassador
spec:
  type: LoadBalancer
  externalTrafficPolicy: Local
  ports:
   - port: 80
     targetPort: 8080
  selector:
    service: ambassador
  loadBalancerIP: "x.x.x.x"

编辑:问题已解决,但..

创建静态IP地址时,我使用了:

Error creating load balancer (will retry): failed to ensure load balancer for service default/ambassador: requested ip "x.x.x.x" is neither static nor assigned to the LB   

我将此地址用于服务。 它没有像我说的那样工作。

但是,当我使用Web控制台创建外部静态区域IP时,该IP可以与我的Service一起正常工作,并且可以毫无问题地进行连接。

1 个答案:

答案 0 :(得分:1)

我敢打赌,那时没有公开源IP服务。正如官方文档所说:

从Kubernetes 1.5开始,默认情况下,发送到Type = LoadBalancer的服务的数据包是源NAT,因为所有处于就绪状态的可调度Kubernetes节点均可进行负载平衡流量。因此,如果数据包到达没有端点的节点,则系统将其代理到具有端点的节点,用该节点的IP替换数据包上的源IP(如上一节所述)。

尝试使用此命令将源IP服务公开给负载均衡器:

kubectl expose deployment <source-ip-app> --name=loadbalancer --port=80 --target-port=8080 --type=LoadBalancer

在此页面上,您将找到更多指南以及用于健全性检查的许多诊断命令。

https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-type-loadbalancer