簡體   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