Google cloud platform GCP使用现有静态IP创建负载平衡器服务不';不显示外部ip
我试图在GKE上托管wordpress网站,然后创建一个带有预先存在的静态IP的ELB来公开wordpress。我做了以下几件事:Google cloud platform GCP使用现有静态IP创建负载平衡器服务不';不显示外部ip,google-cloud-platform,google-kubernetes-engine,Google Cloud Platform,Google Kubernetes Engine,我试图在GKE上托管wordpress网站,然后创建一个带有预先存在的静态IP的ELB来公开wordpress。我做了以下几件事: 保留此处定义的静态IP:。它属于IPv4、高级层和全局类型 创建了一个ELB服务(将yaml修改为我的静态ip) 我的yaml的内容: kind: Service metadata: labels: app: wordpress name: wordpress spec: type: LoadBalancer loadBalancerIP
- 保留此处定义的静态IP:。它属于IPv4、高级层和全局类型
- 创建了一个ELB服务(将yaml修改为我的静态ip)
kind: Service
metadata:
labels:
app: wordpress
name: wordpress
spec:
type: LoadBalancer
loadBalancerIP: "x.x.x.x"
ports:
- port: 80
targetPort: 80
protocol: TCP
selector:
app: wordpres
当我运行以下命令-kubectl get svc-l app=wordpress--watch
,我得到:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
wordpress LoadBalancer x.x.x.x <pending> 80:32590/TCP 6m7s
名称类型群集IP外部IP端口
wordpress负载平衡器x.x.x 80:32590/TCP 6m7s
有什么线索可以解释为什么这不起作用,并告诉我外部ip地址吗?您的服务规范似乎有误。
spec.loadBalancerIP
字段应指定要分配给LB前端的“外部”IP(注意,此处的外部指集群外部,此IP应属于您的专有网络或公共IP)
在您的情况下,您分配的IP(
192.168.0.1
)实际上是您的群集IP(这是有意义的,因为Google在VPC中分配IP的方式,该IP通常会分配给网关)。无论静态IP是什么(比如35.35.35.35
),都应该在适当的字段中指定为spec.loadbalancer IP:35.35.35
。如果需要的话,192.168.0.1
将在spec.clusterIP
字段中定义。当我们公开一个服务时,它会创建一个只与区域IP地址一起工作的TCP网络负载平衡器。全局IP地址仅适用于入口资源类型。我建议您使用区域静态IP地址,而不是全局IP地址。下面的链接简要介绍了GCP中的负载平衡器:我尝试在我的终端复制此场景,但它立即对我的区域IP地址有效,而对全局IP地址完全无效 你花了多长时间?我一直在读故事,可能需要15分钟。18分钟到现在,但仍然不起作用。您是否可以在控制台上的loadbalancer菜单中检查loadbalancer部署状态?看起来您将内部群集IP指定为loadBalancerIP
,而不是您保留并要使用的IP地址。。。它们都是192.168.0.1,如果您的静态负载平衡器地址以.1结尾(并且192.168.x.x永远不会是外部IP),我会感到惊讶,这只是一个示例。我应该把它作为我的宝贝,那只是样品。我应该把它当作我的坏东西。它不是192.168.0.1。您选择的IP是否显示为clusterIP?您还可以确认lb ip是保留和未分配的吗?根据此状态,可以使用全局ip。