Networking GKE负载平衡器连接被拒绝
我正在尝试在GKE上设置我的应用程序,并使用内部负载平衡器进行公共访问。我能够部署集群/负载平衡器服务,没有任何问题,但当我尝试访问负载平衡器的外部ip地址时,我的连接被拒绝,我不确定是什么问题/如何调试 以下是我所做的步骤: 我通过Networking GKE负载平衡器连接被拒绝,networking,kubernetes,google-cloud-platform,load-balancing,google-kubernetes-engine,Networking,Kubernetes,Google Cloud Platform,Load Balancing,Google Kubernetes Engine,我正在尝试在GKE上设置我的应用程序,并使用内部负载平衡器进行公共访问。我能够部署集群/负载平衡器服务,没有任何问题,但当我尝试访问负载平衡器的外部ip地址时,我的连接被拒绝,我不确定是什么问题/如何调试 以下是我所做的步骤: 我通过kubectl apply-f file.yaml应用了我的部署yaml文件,然后,我使用kubectl apply-f service.yaml应用了我的负载平衡器服务yaml文件。部署完这两个之后,我确实kubectl获得了服务,从负载平衡器获取外部IP地址 这
kubectl apply-f file.yaml
应用了我的部署yaml
文件,然后,我使用kubectl apply-f service.yaml
应用了我的负载平衡器服务yaml
文件。部署完这两个之后,我确实kubectl获得了服务
,从负载平衡器获取外部IP地址
这是我的deployment.yaml
文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-api
image: gcr.io/...
ports:
- containerPort: 8000
resources:
requests:
memory: "250M"
cpu: "250m"
limits:
memory: "1G"
cpu: "500m"
- name: my-app
image: gcr.io/...
ports:
- containerPort: 3000
resources:
requests:
memory: "250M"
cpu: "250m"
limits:
memory: "1G"
cpu: "500m"
apiVersion: v1
kind: Service
metadata:
name: my-app-ilb
annotations:
cloud.google.com/load-balancer-type: "Internal"
labels:
app: my-app-ilb
spec:
type: LoadBalancer
selector:
app: my-app
ports:
- port: 3000
targetPort: 3000
protocol: TCP
这是我的service.yaml
文件:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-api
image: gcr.io/...
ports:
- containerPort: 8000
resources:
requests:
memory: "250M"
cpu: "250m"
limits:
memory: "1G"
cpu: "500m"
- name: my-app
image: gcr.io/...
ports:
- containerPort: 3000
resources:
requests:
memory: "250M"
cpu: "250m"
limits:
memory: "1G"
cpu: "500m"
apiVersion: v1
kind: Service
metadata:
name: my-app-ilb
annotations:
cloud.google.com/load-balancer-type: "Internal"
labels:
app: my-app-ilb
spec:
type: LoadBalancer
selector:
app: my-app
ports:
- port: 3000
targetPort: 3000
protocol: TCP
我的部署文件有两个容器;后端api和前端。我想做的是,我应该能够继续[外部ip地址]:3000
并查看我的web应用程序
我希望这是足够的信息;如果我还缺少/可以补充什么,请告诉我
谢谢大家! 您需要通过创建防火墙规则来允许流量流入集群
gcloud compute firewall-rules create my-rule --allow=tcp:3000
删除此批注:
annotations:
cloud.google.com/load-balancer-type: "Internal"
您需要外部负载平衡器。您需要通过创建防火墙规则来允许流量流入集群
gcloud compute firewall-rules create my-rule --allow=tcp:3000
删除此批注:
annotations:
cloud.google.com/load-balancer-type: "Internal"
您需要外部负载平衡器。哪些容器是您的web应用?我的web应用是
My app
,使用端口3000
。哪些容器是您的web应用?我的web应用是My app
,使用端口3000
。我刚刚检查了防火墙规则,似乎在我创建服务时GKE已经创建了它。我看到一个用于我的容器,但仍然不起作用。GCE是否为负载平衡器分配了外部IP地址?您可以检查负载平衡器的状态吗?配置负载平衡器需要时间(5-10分钟)。您的负载平衡器不应该是外部的吗?我相信GKE会为负载平衡器分配外部IP地址。部署service.yaml
文件并等待大约5-10分钟后,出现了外部ip地址。我基本上遵循了本教程的内容:您的教程说:内部TCP/UDP负载平衡使您的集群的服务可供使用相同VPC网络且位于相同GCP区域的集群以外的应用程序访问。换句话说,这不是面向公众的负载平衡器,这是您将在VPC内部使用的内部负载平衡器。啊。。。我从没听说过,这可能就是原因。可能需要找到一种配置外部IP地址的方法。谢谢你抓住了!我刚刚检查了防火墙规则,似乎在我创建服务时GKE已经创建了它。我看到一个用于我的容器,但仍然不起作用。GCE是否为负载平衡器分配了外部IP地址?您可以检查负载平衡器的状态吗?配置负载平衡器需要时间(5-10分钟)。您的负载平衡器不应该是外部的吗?我相信GKE会为负载平衡器分配外部IP地址。部署service.yaml
文件并等待大约5-10分钟后,出现了外部ip地址。我基本上遵循了本教程的内容:您的教程说:内部TCP/UDP负载平衡使您的集群的服务可供使用相同VPC网络且位于相同GCP区域的集群以外的应用程序访问。换句话说,这不是面向公众的负载平衡器,这是您将在VPC内部使用的内部负载平衡器。啊。。。我从没听说过,这可能就是原因。可能需要找到一种配置外部IP地址的方法。谢谢你抓住了!