Kubernetes 没有公共IP的GKE负载平衡服务

Kubernetes 没有公共IP的GKE负载平衡服务,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,我有一个带有负载平衡器的GKE服务,但我希望我的其他服务在内部使用它,例如,我希望不将公共IP分配给它 如果没有专用VPN和防火墙设置,是否有可能 所有其他负载平衡(如kube-dns)功能都非常有效,对于我的容器引擎中的服务,它们不需要公共IP 所有节点都位于同一区域,因此我不需要也不关心多区域功能在您提出的问题中,不清楚“内部由我的其他服务”是指“在同一集群中运行的Kubernetes服务”还是“在GCE中运行但在Kubernetes集群之外的其他应用程序” Kubernetes“服务”资源

我有一个带有负载平衡器的GKE服务,但我希望我的其他服务在内部使用它,例如,我希望不将公共IP分配给它

如果没有专用VPN和防火墙设置,是否有可能

所有其他负载平衡(如
kube-dns
)功能都非常有效,对于我的容器引擎中的服务,它们不需要公共IP


所有节点都位于同一区域,因此我不需要也不关心多区域功能

在您提出的问题中,不清楚“内部由我的其他服务”是指“在同一集群中运行的Kubernetes服务”还是“在GCE中运行但在Kubernetes集群之外的其他应用程序”

Kubernetes“服务”资源即使未设置为
LoadBalancer
,也会进行负载平衡。因此,如果您只需要将此服务公开给在Kubernetes中运行的其他应用程序,则可以将服务的
spec.type
设置为
ClusterIP
。从文档中:

ClusterIP:在群集内部IP上公开服务。选择此值将使服务只能从集群内访问

如果需要将此服务公开给Kubernetes以外的应用程序,则需要将
spec.type
设置为
LoadBalancer
,这将为其分配一个公共IP。使用
spec.loadBalancerSourceRanges
,对于简单的防火墙规则,防火墙配置相对容易。您可以在此处阅读更多有关内容:

GKE现在支持:

注意注释:
cloud.google.com/load-balancer-type:“Internal”
。 这将创建一个LoadBalancer服务,其私有IP地址可从VPC中路由

Bitnami在这方面也有一篇很棒的博文:
.

但该区域以外的资源无法提供,对吗?有没有办法从另一个地区访问这个IP地址?@AmitYadav,这个地区没有严格的限制。虚拟路由在VPC中配置。有几种方法可以在VPC之间路由内部地址。过去,我使用共享VPC在多个地区的GKE节点之间进行路由。这些路由可以使用云路由器和云VPN服务窥视到本地网络。还考虑全局动态路由:
apiVersion: v1
kind: Service
metadata:
  name: [SERVICE-NAME]
  annotations:
    cloud.google.com/load-balancer-type: "Internal"
  labels:
    app: echo
spec:
  type: LoadBalancer
  loadBalancerIP: [IP-ADDRESS]
  ports:
  - port: 9000
    protocol: TCP
  selector:
    [KEY]: [VALUE]