Mik*_*ike 8 google-app-engine google-compute-engine google-cloud-platform google-kubernetes-engine
我有一个gke集群,它有一个http(s)负载均衡器,它根据文档使用RATE平衡模式.
我正在尝试使用内部负载均衡器将此群集上的工作负载暴露给App Engine.两种服务都位于同一区域的同一网络中.
但是,当我尝试创建负载均衡器时,它会因此错误而失败.
Error creating load balancer (will retry): failed to ensure load balancer for service default/internal-es-lb: googleapi: Error 400: Validation failed for instance 'projects/PROJECT-NAME/zones/us-central1-a/instances/gke-staging-default-pool-85830c52-g6tg': instance may belong to at most one load-balanced instance group., instanceInMultipleLoadBalancedIgs
有几件事情很奇怪.
1.内部LB今天早些时候工作.
2. http(s)负载均衡器抛出与内部LB相同的错误,即使它是集群
3 上唯一的负载均衡器.当我使用我的服务yaml创建LB时,它会创建一个新的/不同的实例组比我的目标池
这是我的服务yaml:
apiVersion: v1
kind: Service
metadata:
name: internal-es-lb
annotations:
cloud.google.com/load-balancer-type: "Internal"
labels:
app: internal-es-lb
spec:
type: LoadBalancer
loadBalancerIP: 10.128.0.4
loadBalancerSourceRanges: [0.0.0.0/0]
ports:
- port: 80
targetPort: 9200
protocol: TCP
name: http-es-lb
selector:
app: elastic-master
Run Code Online (Sandbox Code Playgroud)
我想我理解错误意味着只能有一个实例组,所以是否可以在yaml中指定实例组?或者,还有其他解决方案吗?谢谢!
更新:内部LB今天早些时候工作,因为我还没有实现http(s)LB. 随着http(s)lb的到位,这些失败了.由于文档不是很清楚,我很想知道如何使这一切工作在一起.
更新到更新:如果我首先创建内部LB,然后将http(s)LB应用于新实例组,则可以进行排序.一切都正在路由和正确加载,但谷歌控制台抛出一堆错误,所以我不知道这是否是推荐的方式.
创建 HTTP(S) LB 时,您可能会创建使用托管实例组 (MIG) 的后端。实例(包括 GKE 节点)在任何给定时间只能是单个 MIG 的一部分。
当您通过GKE创建ILB服务时,后端都是非托管实例组,因此实例可以重复使用。
解决此问题的建议方法是使用Kubernetes Ingress而不是 GCE L7LB,因为 Ingress 还将使用非托管实例组。
| 归档时间: |
|
| 查看次数: |
426 次 |
| 最近记录: |