Networking 无法访问GCP别名IP
我的别名IP范围是Networking 无法访问GCP别名IP,networking,google-cloud-platform,google-kubernetes-engine,google-vpc,Networking,Google Cloud Platform,Google Kubernetes Engine,Google Vpc,我的别名IP范围是10.7.0.0/16 为VPC本机群集配置了辅助范围,因此我的播客/服务可以具有别名IP范围 ❯ k get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hasura-service NodePort 10.7.165.27 <none> 80:30891/TCP 2d21h 在GKE中,有一个服务使用别名IP范围 ❯
10.7.0.0/16
为VPC本机群集配置了辅助范围,因此我的播客/服务可以具有别名IP范围
❯ k get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hasura-service NodePort 10.7.165.27 <none> 80:30891/TCP 2d21h
在GKE中,有一个服务使用别名IP范围
❯ k get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hasura-service NodePort 10.7.165.27 <none> 80:30891/TCP 2d21h
项目中的其他实例无法与10.7.165.27:80
通信,这些实例位于同一子网10.152.0.0/20
我是否需要配置其他任何东西才能使用VPC本身的别名范围的connect?注释
cloud.google.com/neg:“{”ingres:true}”
用于ClusterIP
,而不是NodePort
,这意味着所述服务将以两种方式公开:
ClusterIP
,它只能从位于10.7.165.27的同一子网中的其他pod访问
30891/tcp
中的所有GKE节点之间创建转发规则iptables
ClusterIP
(点“1”),也不会生效,因为它不是设计的方式
也就是说,这里有多条路径
a) 您可以不必担心,直接在端口30891/tcp
上与GKE节点通信,我只能将此作为最后手段,因为我个人不喜欢处理随机(或手动)选择的端口,从长远来看,这可能会影响处理
b) 您还可以直接与您的GKE pod IP地址通信(假设没有GCP防火墙规则阻止连接),我也不会使用它,因为GKE pod IP可以在任何给定时间更改,因此跟踪它需要一些手动操作,而且您也不会有任何“平衡”如果您有多个吊舱提供相同的服务
c) 您可以实现以下ClusterIP yaml文件,而不是当前文件:
apiVersion: "v1"
kind: "Service"
metadata:
name: "sura-service"
annotations:
cloud.google.com/neg: '{"exposed_ports": {"80":{}}}'
namespace: "sura"
spec:
ports:
- protocol: "TCP"
port: 80
targetPort: 8080
selector:
app: "sura"
type: "ClusterIP"
这将创建一个NEG,您需要将您的连接指向将要创建的GCP NEG内部IP,如果您出于任何原因需要使用GCP NEG,我个人将使用此连接
d) 如果您不需要像这样使用NEGs,也可以部署内部TCP负载平衡器:
apiVersion: "v1"
kind: "Service"
metadata:
name: "sura-l4"
namespace: "sura"
annotations:
cloud.google.com/load-balancer-type: "Internal"
spec:
ports:
- protocol: "TCP"
port: 80
targetPort: 8080
selector:
app: "sura"
type: "LoadBalancer"
loadBalancerIP: ""
根据您试图实现的目标,您可以将其与NEGs和/或全局访问相结合
---
apiVersion: v1
kind: Service
metadata:
name: sura-service
namespace: sura
annotations:
cloud.google.com/neg: '{"ingress": true}'
spec:
selector:
app: sura
ports:
- protocol: "TCP"
port: 80
targetPort: 8080
type: ClusterIP
这将创建一个仍无法从VPC访问的具有辅助别名范围的服务
创建具有仅代理子网的内部负载平衡器-
这是数据包流
VPC本机集群的目标是避免节点端口通信和K8S的负载均衡器,但直接到达pod以获得更好的网络性能。我不是K8S方面的专家,但这个问题似乎很正常!!使用neg暴露端口进行服务后仍然无法访问。您的GKE服务列表上报告的IP地址仅为内部(GKE pods),但当您部署此服务时,将创建一个GCP neg,表示neg将具有其他子网可访问的不同IP地址,请注意,如果您使用
cloud.google.com/neg:'{“ingres”:true}
,所述NEG仅在您部署使用所述集群IP的Ingress
时创建。因此,您对LB的使用是否良好?内部IP很好,我感谢您的回复,NEG速度很快。
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: sura-ingress
namespace: sura
annotations:
kubernetes.io/ingress.class: "gce-internal"
spec:
backend:
serviceName: sura-service
servicePort: 80