Google cloud platform 如何使用Google部署管理器(Python+YAML)部署内部HTTP负载平衡器?
我正在为一个由巨石和微服务组成的web应用程序实现IaC。我想在我们所有的微服务前面放置一个示例,但还没有找到任何这样的示例。我看了看。此处的内部负载平衡器仅支持TCP/UDP内部负载平衡器。谷歌根本就没有提到它!!目前,似乎唯一的选择是从头开始构建python模板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':
在我跳进兔子洞之前,我想检查一下这方面是否有可用的工作样本或示例。根据一些谷歌文档,您只需要修改内部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。