Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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 GCP上带负载平衡器的袜子店_Kubernetes_Google Cloud Platform_Load Balancing - Fatal编程技术网

Kubernetes GCP上带负载平衡器的袜子店

Kubernetes GCP上带负载平衡器的袜子店,kubernetes,google-cloud-platform,load-balancing,Kubernetes,Google Cloud Platform,Load Balancing,我正试图在谷歌云平台上部署和访问Sock shop。 我能够使用部署脚本部署它 基于这里的教程 上面说 使用以下命令在浏览器中显示袜子店: : 但在GCP上,主节点对用户隐藏 因此,我将类型从NodePort更改为LoadBalancer 我能够获得一个外部IP 但它说找不到该页面。在这里输入代码 是否需要为LoadBalancer设置更多内容?我建议返回相应服务中的NodePort,并在GCP群集中创建入口资源 如果您希望从集群外部访问相关的应用程序,Kubernetes提供了向您的内部服

我正试图在谷歌云平台上部署和访问Sock shop。

我能够使用部署脚本部署它

基于这里的教程 上面说 使用以下命令在浏览器中显示袜子店:

:

但在GCP上,主节点对用户隐藏

因此,我将类型从NodePort更改为LoadBalancer

我能够获得一个外部IP

但它说找不到该页面。在这里输入代码


是否需要为LoadBalancer设置更多内容?

我建议返回相应服务中的NodePort,并在GCP群集中创建入口资源

如果您希望从集群外部访问相关的应用程序,Kubernetes提供了向您的内部服务公开HTTP和HTTPS路由的机制

基本上,一旦入口资源成功实现,默认情况下在GKE中创建,因此它将负责将所有外部HTTP/S流量路由到嵌套的Kubernetes服务

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: basic-ingress
spec:
  backend:
    serviceName: web
    servicePort: 8080
您可以通过以下命令检查负载平衡器的外部IP地址:

kubectl获取入口基本入口


我发现这在你的普通研究中非常有用。

我不知道你是否解决了这个问题,但我解决了,所以我想与你分享我的解决方案。 您可以通过两种方式来实现:

首先,创建一个负载平衡器,在这里公开前端服务。 我假设您已经创建了一个名为sockshop的名称空间,因此任何进一步的命令都应该指定并引用该名称空间。 如果键入并执行该命令: kubectl获取服务-命名空间=sock shop 您应该能够看到一个包含所有服务的列表,其中包括一个名为前端的服务。因此,现在您希望将该服务公开为负载平衡器,而不是节点端口。因此,执行以下命令: kubectl公开服务前端-名称=前端lb-端口=80-目标端口=8079-类型=负载平衡器-命名空间=sock shop 在这之后给一些时间,你将能够通过公共IP地址ephimeral访问袜子店的前端

第二种更高级的方法是配置入口负载平衡器。 您需要配置另一个yaml文件,并将此代码放入其中,然后像处理上一个.yaml文件一样运行它

nano basic-ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace : sock-shop
  name: basic-ingress
spec:
  backend:
    serviceName: front-end
    servicePort: 80

kubectl apply -f basic-ingress.yaml --namespace=sock-shop
通过此命令定位公共IP地址,最多15分钟后,您应该能够访问Sock Shop

kubectl get ingress --namespace=sock-shop