Невозможно получить доступ к Load Banalcer IP из Google Cloud Shell после создания кластера GKE

Я изучаю службы 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

Теперь, если я пытаюсь получить доступ к LoadBalancer IP из Gcloud shell, время истекает, я что-то упускаю

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

person Zama Ques    schedule 13.04.2020    source источник
comment
может быть нужен белый список IP-адресов?   -  person Arghya Sadhu    schedule 13.04.2020
comment
Адрес 10.x.x.x - это частный IP-адрес в вашем VPC. Cloud Shell не работает в вашем VPC. Следовательно, адрес недоступен. Вы должны использовать внешний IP-адрес.   -  person John Hanley    schedule 13.04.2020
comment
Спасибо . Работает .... Я могу получить доступ с помощью внешнего IP .... Пытался использовать внутренний IP.   -  person Zama Ques    schedule 13.04.2020
comment
@JohnHanley, поскольку ваш комментарий указал на решение этой проблемы, не могли бы вы расширить его и опубликовать в качестве ответа?   -  person PjoterS    schedule 14.04.2020


Ответы (1)


Адрес 10.x.x.x - это частный IPv4-адрес в вашем VPC. Cloud Shell не работает в вашем VPC. Следовательно, адрес недоступен. Вы должны использовать внешний IP-адрес.

Для получения дополнительной информации о частных IPv4-адресах:

Частные IPv4-адреса

Также существуют частные адреса IPv6. VPC Google Cloud не поддерживают IPv6. Некоторые сервисы Google Cloud, такие как балансировщики нагрузки HTTP (S), действительно поддерживают IPv6, но эти ресурсы не являются частью VPC вашего проекта.

Сети VPC поддерживают только одноадресный трафик IPv4. Они не поддерживают широковещательный, многоадресный или IPv6-трафик внутри сети; Виртуальные машины в сети VPC могут отправлять только адресатам IPv4 и получать трафик только от источников IPv4. Однако можно создать IPv6-адрес для глобального балансировщика нагрузки.

Обзор сети VPC - Технические характеристики

person John Hanley    schedule 15.04.2020