Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如何使用Google Cloud Deployment Manager为TCP负载平衡器指定多个后端_Kubernetes_Load Balancing_Google Compute Engine_Google Deployment Manager - Fatal编程技术网

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

Kubernetes 如何使用Google Cloud Deployment Manager为TCP负载平衡器指定多个后端,kubernetes,load-balancing,google-compute-engine,google-deployment-manager,Kubernetes,Load Balancing,Google Compute Engine,Google Deployment Manager,在web控制台中创建TCP负载平衡器时,我可以添加多个后端服务(请参见下图)。我让一切正常,现在我正试图用Cloud Deployment Manager复制它,但我不知道如何将多个后端服务设置为TCP负载平衡器 似乎只允许一个目标。也许我只需要一个目标,而只需要将多个实例组管理器连接到一个目标池 对我来说,这方面的问题是我的实例组管理器是由Kubernetes创建的,我看不到在不重新定义实例组管理器的情况下将实例组管理器连接到目标池的方法 如果没有使用deployment manager创建

在web控制台中创建TCP负载平衡器时,我可以添加多个后端服务(请参见下图)。我让一切正常,现在我正试图用Cloud Deployment Manager复制它,但我不知道如何将多个后端服务设置为TCP负载平衡器

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

对我来说,这方面的问题是我的实例组管理器是由Kubernetes创建的,我看不到在不重新定义实例组管理器的情况下将实例组管理器连接到目标池的方法

如果没有使用deployment manager创建实例组,是否有方法将多个后端/实例组添加到转发规则中?

Kubernetes 首先,如果您正在使用Kubernetes创建集群,并且希望通过单个入口点可以访问节点中运行的容器,则必须使用loadbalancer类型

谷歌云部署管理器 但是,对于Cloud Deployment Manager,也可以创建TCP负载平衡器,将流量重定向到多个后端

为了检查所需的底层组件,我建议您通过开发者控制台创建一个临时TCP负载平衡器,并检查所有创建的组件。 事实证明,您需要创建一个ForwardingRule,该规则指向一个TargetPool,该TargetPool在同一个区域中连接了多个托管实例组

因此,您需要修改托管实例组,并为每个实例组修改。 您可以使用以下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>>
库伯内特斯 首先,如果您正在使用Kubernetes创建集群,并且希望通过单个入口点可以访问节点中运行的容器,则必须使用loadbalancer类型

谷歌云部署管理器 但是,对于Cloud Deployment Manager,也可以创建TCP负载平衡器,将流量重定向到多个后端

为了检查所需的底层组件,我建议您通过开发者控制台创建一个临时TCP负载平衡器,并检查所有创建的组件。 事实证明,您需要创建一个ForwardingRule,该规则指向一个TargetPool,该TargetPool在同一个区域中连接了多个托管实例组

因此,您需要修改托管实例组,并为每个实例组修改。 您可以使用以下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>>

谢谢你的回答!我想使用NodePort而不是LoadBalancer,这就是为什么我直接将流量路由到Kubernetes仆从的原因。我使用了创建托管实例组的Kubernetes kube-up.sh脚本。如果我在部署管理器yaml中创建一个条目,将目标池添加到这些托管实例组中,这是“合并”还是“替换”?我担心这样做会破坏kube-up.sh设置的一些设置。如果目标池条目已经存在,它会替换它。但是,如果您害怕破坏您的环境,最好的做法是继续进行测试,并检查您期望的所有功能在更改后仍在工作。顺便说一下,如果您只想将目标池与实例组关联,我会使用以下Cloud SDK命令,而不是DM:$gcloud compute instance groups managed set target pool[…]谢谢您的回答!我想使用NodePort而不是LoadBalancer,这就是为什么我直接将流量路由到Kubernetes仆从的原因。我使用了创建托管实例组的Kubernetes kube-up.sh脚本。如果我在部署管理器yaml中创建一个条目,将目标池添加到这些托管实例组中,这是“合并”还是“替换”?我担心这样做会破坏kube-up.sh设置的一些设置。如果目标池条目已经存在,它会替换它。但是,如果您害怕破坏您的环境,最好的做法是继续进行测试,并检查您期望的所有功能在更改后仍在工作。顺便说一下,如果您只想将目标池与实例组关联,我将使用以下Cloud SDK命令,而不是DM:$gcloud compute instance groups managed set target pool[…]