Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Google cloud platform 如何使用Google部署管理器(Python+YAML)部署内部HTTP负载平衡器?_Google Cloud Platform_Google Deployment Manager_Infrastructure As Code_Gcp Load Balancer - Fatal编程技术网

Google cloud platform 如何使用Google部署管理器(Python+YAML)部署内部HTTP负载平衡器?

Google cloud platform 如何使用Google部署管理器(Python+YAML)部署内部HTTP负载平衡器?,google-cloud-platform,google-deployment-manager,infrastructure-as-code,gcp-load-balancer,Google Cloud Platform,Google Deployment Manager,Infrastructure As Code,Gcp Load Balancer,我正在为一个由巨石和微服务组成的web应用程序实现IaC。我想在我们所有的微服务前面放置一个示例,但还没有找到任何这样的示例。我看了看。此处的内部负载平衡器仅支持TCP/UDP内部负载平衡器。谷歌根本就没有提到它!!目前,似乎唯一的选择是从头开始构建python模板 在我跳进兔子洞之前,我想检查一下这方面是否有可用的工作样本或示例。根据一些谷歌文档,您只需要修改内部TCP LB模板中的一些值 下面是内部TCP LB示例代码的regionBackendService { 'name':

我正在为一个由巨石和微服务组成的web应用程序实现IaC。我想在我们所有的微服务前面放置一个示例,但还没有找到任何这样的示例。我看了看。此处的内部负载平衡器仅支持TCP/UDP内部负载平衡器。谷歌根本就没有提到它!!目前,似乎唯一的选择是从头开始构建python模板


在我跳进兔子洞之前,我想检查一下这方面是否有可用的工作样本或示例。

根据一些谷歌文档,您只需要修改内部TCP LB模板中的一些值

下面是内部TCP LB示例代码的regionBackendService

{
      'name': loadbalancer_name,
      'type': 'compute.v1.regionBackendService',
      'properties': {
          'region': properties['region'],
          'network': properties['network'],
          'healthChecks': ['$(ref.' + healthcheck_name + '.selfLink)'],
          'backends': properties['instance-groups'],
          'protocol': 'TCP',
          'loadBalancingScheme': 'INTERNAL',
      }
  }
这是compute.v1.regionBackendService的参考

协议

可能的值为HTTP、HTTPS、HTTP2、TCP、SSL、UDP或GRPC。 取决于所选的负载平衡器或流量控制器 配置请参阅有关负载平衡器的文档或有关详细信息 交通主管了解更多信息

负荷平衡方案

为内部HTTPS负载平衡选择内部\u MANAGED

因此,您需要将“协议”:“TCP”修改为“协议”:“HTTP”或HTTPS,“loadBalancingScheme”:“INTERNAL”修改为“loadBalancingScheme”:“INTERNAL\u MANAGED”

下面是TCP内部LB代码的转发规则

{
      'name': forwardingrule_name,
      'type': 'compute.v1.forwardingRule',
      'properties': {
          'ports': [80],
          'network': properties['network'],
          'subnetwork': properties['subnet'],
          'region': properties['region'],
          'backendService': '$(ref.' + loadbalancer_name + '.selfLink)',
          'loadBalancingScheme': 'INTERNAL',
      }
  }
{
      'name': healthcheck_name,
      'type': 'compute.v1.healthCheck',
      'properties': {
          'type': 'TCP',
          'tcpHealthCheck': {
              'port': 80
          },
      }
  }
你也可以找到关于这个资源的信息

负荷平衡方案

内部管理单元用于: 内部HTTPS负载平衡

异丙醇

内部HTTPS负载平衡:负载平衡方案为 内部\u受管理,并且只有TCP有效

因此,您需要将LoadBalanceScheme值从“内部”修改为“内部管理”。 或者您可能需要将IPProtocol值添加到forwardingrule中

最后,下面是TCP内部LB代码的健康检查

{
      'name': forwardingrule_name,
      'type': 'compute.v1.forwardingRule',
      'properties': {
          'ports': [80],
          'network': properties['network'],
          'subnetwork': properties['subnet'],
          'region': properties['region'],
          'backendService': '$(ref.' + loadbalancer_name + '.selfLink)',
          'loadBalancingScheme': 'INTERNAL',
      }
  }
{
      'name': healthcheck_name,
      'type': 'compute.v1.healthCheck',
      'properties': {
          'type': 'TCP',
          'tcpHealthCheck': {
              'port': 80
          },
      }
  }
正如我在中所发现的,您必须对https内部LB使用“healthcheck”

因此,您需要修改资源类型以计算.v1.regionHealthChecks


我不能完全确定我的描述,但是您可以通过参考Google文档和示例代码来创建自己的HTTPS内部LB。

根据一些Google文档,您只需要修改内部TCP LB模板中的一些值

{
      'name': loadbalancer_name,
      'type': 'compute.v1.regionBackendService',
      'properties': {
          'region': properties['region'],
          'network': properties['network'],
          'healthChecks': ['$(ref.' + healthcheck_name + '.selfLink)'],
          'backends': properties['instance-groups'],
          'protocol': 'TCP',
          'loadBalancingScheme': 'INTERNAL',
      }
  }
下面是内部TCP LB示例代码的regionBackendService

{
      'name': loadbalancer_name,
      'type': 'compute.v1.regionBackendService',
      'properties': {
          'region': properties['region'],
          'network': properties['network'],
          'healthChecks': ['$(ref.' + healthcheck_name + '.selfLink)'],
          'backends': properties['instance-groups'],
          'protocol': 'TCP',
          'loadBalancingScheme': 'INTERNAL',
      }
  }
这是compute.v1.regionBackendService的参考

协议

可能的值为HTTP、HTTPS、HTTP2、TCP、SSL、UDP或GRPC。 取决于所选的负载平衡器或流量控制器 配置请参阅有关负载平衡器的文档或有关详细信息 交通主管了解更多信息

负荷平衡方案

为内部HTTPS负载平衡选择内部\u MANAGED

因此,您需要将“协议”:“TCP”修改为“协议”:“HTTP”或HTTPS,“loadBalancingScheme”:“INTERNAL”修改为“loadBalancingScheme”:“INTERNAL\u MANAGED”

下面是TCP内部LB代码的转发规则

{
      'name': forwardingrule_name,
      'type': 'compute.v1.forwardingRule',
      'properties': {
          'ports': [80],
          'network': properties['network'],
          'subnetwork': properties['subnet'],
          'region': properties['region'],
          'backendService': '$(ref.' + loadbalancer_name + '.selfLink)',
          'loadBalancingScheme': 'INTERNAL',
      }
  }
{
      'name': healthcheck_name,
      'type': 'compute.v1.healthCheck',
      'properties': {
          'type': 'TCP',
          'tcpHealthCheck': {
              'port': 80
          },
      }
  }
你也可以找到关于这个资源的信息

负荷平衡方案

内部管理单元用于: 内部HTTPS负载平衡

异丙醇

内部HTTPS负载平衡:负载平衡方案为 内部\u受管理,并且只有TCP有效

因此,您需要将LoadBalanceScheme值从“内部”修改为“内部管理”。 或者您可能需要将IPProtocol值添加到forwardingrule中

最后,下面是TCP内部LB代码的健康检查

{
      'name': forwardingrule_name,
      'type': 'compute.v1.forwardingRule',
      'properties': {
          'ports': [80],
          'network': properties['network'],
          'subnetwork': properties['subnet'],
          'region': properties['region'],
          'backendService': '$(ref.' + loadbalancer_name + '.selfLink)',
          'loadBalancingScheme': 'INTERNAL',
      }
  }
{
      'name': healthcheck_name,
      'type': 'compute.v1.healthCheck',
      'properties': {
          'type': 'TCP',
          'tcpHealthCheck': {
              'port': 80
          },
      }
  }
正如我在中所发现的,您必须对https内部LB使用“healthcheck”

因此,您需要修改资源类型以计算.v1.regionHealthChecks


我不完全确定我的描述,但您可以通过参考谷歌文档和示例代码创建自己的HTTPS内部LB。

如果有帮助,请单击check botton接受我的回答:我将首先测试:嘿,也请检查此文档,可能是您感兴趣的:忘了更新这里,但我成功了。实际上,它比内部TCP LB更接近外部HTTP LB。我必须使用所有区域资源,而不是非区域资源。2额外要求是:regionalTargetHTTPProxy需要一个仅代理子网和一个防火墙规则,以允许从仅代理子网到运行MIG的内部网络的流量。目前它是一个仅配置的部署。我计划将其转换为模板并将其添加回cloudfoundry。请单击check botton以接受我的答案,如果它足够有用:我将首先测试它:嘿,也请检查此文档,可能是您感兴趣的:忘记在此处更新,但我已使其工作。实际上,它比内部TCP LB更接近外部HTTP LB。我必须使用所有区域资源,而不是非区域资源。2个额外要求是:regionalTargetHTTPProxy需要一个仅代理的子网和一个适用于所有服务器的防火墙规则
{
      'name': loadbalancer_name,
      'type': 'compute.v1.regionBackendService',
      'properties': {
          'region': properties['region'],
          'network': properties['network'],
          'healthChecks': ['$(ref.' + healthcheck_name + '.selfLink)'],
          'backends': properties['instance-groups'],
          'protocol': 'TCP',
          'loadBalancingScheme': 'INTERNAL',
      }
  }

将流量从仅代理子网传送到运行MIG的内部网络。目前它是仅配置的部署。我计划将其转换为模板并将其添加回cloudfoundry。