GKE 负载均衡器连接被拒绝
GKE Load Balancer Connection Refused
我正在尝试在 GKE 上设置我的应用程序并使用内部负载均衡器进行 public 访问。我能够毫无问题地部署集群/负载均衡器服务,但是当我尝试访问负载均衡器的外部 ip 地址时,我得到连接被拒绝并且我不确定出了什么问题/如何调试它。
这些是我执行的步骤:
我通过 kubectl apply -f file.yaml
应用了我的部署 yaml
文件,然后,我通过 kubectl apply -f service.yaml
应用了我的负载均衡器服务 yaml
文件。两者都部署后,我 kubectl get service
从负载均衡器中获取外部 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"
这是我的 service.yaml
文件:
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 和前端。我想要发生的是我应该能够继续 [external ip address]:3000
并查看我的网络应用程序。
我希望这是足够的信息;如果还有什么我可能遗漏/可以添加的,请告诉我。
谢谢大家!
您需要通过创建防火墙规则允许流量流入您的集群。
gcloud compute firewall-rules create my-rule --allow=tcp:3000
删除此注释:
annotations:
cloud.google.com/load-balancer-type: "Internal"
您需要外部负载均衡器。
我正在尝试在 GKE 上设置我的应用程序并使用内部负载均衡器进行 public 访问。我能够毫无问题地部署集群/负载均衡器服务,但是当我尝试访问负载均衡器的外部 ip 地址时,我得到连接被拒绝并且我不确定出了什么问题/如何调试它。
这些是我执行的步骤:
我通过 kubectl apply -f file.yaml
应用了我的部署 yaml
文件,然后,我通过 kubectl apply -f service.yaml
应用了我的负载均衡器服务 yaml
文件。两者都部署后,我 kubectl get service
从负载均衡器中获取外部 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"
这是我的 service.yaml
文件:
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 和前端。我想要发生的是我应该能够继续 [external ip address]:3000
并查看我的网络应用程序。
我希望这是足够的信息;如果还有什么我可能遗漏/可以添加的,请告诉我。
谢谢大家!
您需要通过创建防火墙规则允许流量流入您的集群。
gcloud compute firewall-rules create my-rule --allow=tcp:3000
删除此注释:
annotations:
cloud.google.com/load-balancer-type: "Internal"
您需要外部负载均衡器。