我正在尝试在GKE上设置我的应用,并使用内部负载平衡器进行公共访问。我能够部署群集/负载平衡器服务而没有任何问题,但是当我尝试访问负载平衡器的外部ip地址时,我得到了Connection Refused,而且我不确定什么是错误的/如何调试它。>
这些是我执行的步骤:
我通过yaml
应用了部署kubectl apply -f file.yaml
文件,然后,我对yaml
应用了负载均衡器服务kubectl apply -f service.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
并查看我的网络应用。
我希望这是足够的信息;请让我知道是否还有其他我想念的东西/可以补充。
谢谢大家!
答案 0 :(得分:2)
您需要通过创建防火墙规则来允许流量流入群集。
gcloud compute firewall-rules create my-rule --allow=tcp:3000
删除此注释:
annotations:
cloud.google.com/load-balancer-type: "Internal"
您需要外部负载均衡器。