繁体   English   中英

创建 GKE 集群后,无法从 Google Cloud Shell 访问负载均衡器 IP

[英]Cannot access Load Banalcer IP from Google Cloud Shell after creating GKE Cluster

我正在学习 GKE 服务并创建了一个包含以下信息的GKE cluster

 $ gcloud container clusters list
   NAME       LOCATION    MASTER_VERSION  MASTER_IP       MACHINE_TYPE   NODE_VERSION    NUM_NODES  STATUS
   mycluster  us-east1-b  1.14.10-gke.27  35.X.X.X        n1-standard-1  1.14.10-gke.27  3          RUNNING

我创建了自己的VPC subnet ,其范围低于我分配给集群的范围。

   IP address range : 10.7.0.0/24

以下辅助 IP 范围由 GKE 引擎分配

   Secondary IP range

  gke-mycluster-pods-765b8f97       10.44.0.0/14    
  gke-mycluster-services-765b8f97   10.237.0.0/20 

创建集群后节点信息如下:

  $kubectl get nodes          

  NAME                                       STATUS   ROLES    AGE   VERSION
  gke-mycluster-default-pool-c2ddd83e-km5k   Ready    <none>   21m   v1.14.10-gke.27
  gke-mycluster-default-pool-c2ddd83e-trrl   Ready    <none>   21m   v1.14.10-gke.27
  gke-mycluster-default-pool-c2ddd83e-x4w3   Ready    <none>   21m   v1.14.10-gke.27

我的部署 YAML 如下创建一个 nginx 容器:

  apiVersion: apps/v1
  kind: Deployment
  metadata:
     name: mywebapp-replicaset
     labels:
       app: mywebapp
       type: front-end
     spec:
       template:
         metadata:
         name: myngix-pod
           labels:
             app: mywebapp
             type: front-end
  spec:
    containers:
      - name: nginx
        image: nginx
        ports:
          - containerPort: 80
    replicas: 3
    selector:
    matchLabels:
       type: front-end

以下是我的服务定义

  apiVersion: v1
  kind: Service
  metadata:
     name: mywebapp-services
     labels:
       app: mywebapp
       type: front-end
  spec:
     type: LoadBalancer
     ports:
       - targetPort: 80
         port: 80
     selector:
       app: mywebapp
       type: front-end 

使用 kubectl 命令创建服务后,它看起来像这样

  $ kubectl get services
   NAME                TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
   kubernetes          ClusterIP      10.237.0.1      <none>        443/TCP        23h
   mywebapp-services   LoadBalancer   10.237.12.141   <pending>     80:31102/TCP   6s

现在,如果我尝试从Gcloud shell访问LoadBalancer IP它超时,我错过了什么

 $ curl http://10.237.12.141:80
 curl: (7) Failed to connect to 10.237.12.141 port 80: Connection timed out

地址 10.xxx 是您的 VPC 中的私有 IPv4 地址。 Cloud Shell 未在您的 VPC 中运行。 因此无法访问该地址。 您必须使用外部 IP。

有关私有 IPv4 地址的更多信息:

私有 IPv4 地址

还有私有 IPv6 地址。 Google Cloud VPC 不支持 IPv6。 某些 Google Cloud 服务(例如 HTTP(S) 负载均衡器)确实支持 IPv6,但这些资源不属于您项目的 VPC。

VPC 网络仅支持 IPv4 单播流量。 它们不支持网络内的广播、多播或 IPv6 流量; VPC 网络中的虚拟机只能发送到 IPv4 目标,并且只能接收来自 IPv4 源的流量。 但是,可以为全局负载均衡器创建 IPv6 地址。

VPC 网络概览 - 规格

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM