我为我的项目设置了此配置:
https://cloud.google.com/vpc/images/shared-vpc/shared-vpc-example-two-tier.svg
一切都在Google Kubernetes Engine下运行。
必须连接到
。
kubectl describe svc gateway-node-api --namespace master
Name: gateway-node-api
Namespace: master
Labels: app=node-api
chart=node-api-0.1.2
heritage=Tiller
release=gateway-node-api
Annotations: cloud.google.com/load-balancer-type=Internal
Selector: app=node-api,release=gateway-node-api
Type: LoadBalancer
IP: 172.16.23.21
LoadBalancer Ingress: 172.16.4.5
Port: http 3000/TCP
TargetPort: http/TCP
NodePort: http 31386/TCP
Endpoints: 172.20.2.30:3000
Session Affinity: None
External Traffic Policy: Cluster
在1层NodeJS服务中使用172.16.4.5:3000无法连接到2层NodeJS API。
我可能错过了什么?
答案 0 :(得分:1)
发现我的问题,我对防火墙规则文档的阅读不足:
https://cloud.google.com/vpc/docs/firewalls
配置共享VPC之后,我创建了一条规则,适用于所有传入请求的所有网络:
shared-network-allow-ssh-icmp shared-network INGRESS 1000 icmp,tcp:22,tcp:80
认识到我还需要应用一条规则,当从一级服务的子网收到请求时,所有tcp端口上的网络所有实例都可以访问:
service1-allow-tcp shared-network INGRESS 1000 tcp:1-65535