如何使用Google Cloud Deployment Manager为TCP负载均衡器指定多个后端

时间:2017-11-04 20:48:31

标签: kubernetes load-balancing google-compute-engine google-deployment-manager

在Web控制台中创建TCP负载均衡器时,我可以添加多个后端服务(参见下图)。我已经完成了所有工作,现在我正在尝试使用Cloud Deployment Manager复制它,但我无法弄清楚如何为TCP负载均衡器设置多个后端服务。

enter image description here

Cloud Deployment Manager ForwardingRule documentation似乎只允许一个target。也许我只需要一个目标,而只需要将多个实例组管理器连接到一个目标池?

对我来说,问题是我的实例组管理器是由Kubernetes创建的,我没有看到将实例组管理器连接到目标池的方法,而没有重新定义实例组管理器。

如果未使用Deployment Manager创建实例组,是否可以将多个后端/实例组添加到转发规则中?

1 个答案:

答案 0 :(得分:0)

Kubernetes

首先,如果您正在创建一个使用Kubernetes的集群,并且您愿意通过单个入口点在节点中运行容器,则必须使用类型loadbalancer的create a service

Google Cloud Deployment Manager

但是,对于Cloud Deployment Manager,也可以创建TCP负载均衡器,将流量重定向到多个后端。

为了检查所需的底层组件,我建议您通过开发人员控制台创建一个临时TCP负载均衡器,并从the advanced setting检查所有创建的组件。 事实证明,您需要创建一个指向TargetPool的ForwardingRule,该TargetPool在与其相连的同一区域中具有多个托管实例组。

因此,您需要为每个实例组修改托管实例组和set the target pool。 您可以使用以下YAML更新名为test的现有托管实例组:

resources:
- name: test
  type: compute.v1.instanceGroupManager
  properties:
    zone: europe-west1-c
    targetSize: 2
    targetPools:
      - https://www.googleapis.com/compute/v1/projects/<<projectID>>/regions/europe-west1/targetPools/mytargetpool
    baseInstanceName: <<baseName>>
    instanceTemplate: https://www.googleapis.com/compute/v1/projects/<<projectID>>/global/instanceTemplates/<<instanceTemplateName>>

每个托管实例组都需要一个类似的结构。

另一方面,您可以使用以下代码段创建Target pool

resources:
- name: mytargetpool
  type: compute.v1.targetPool
  properties:
    region: europe-west1