Невозможно получить доступ к Kubernetes pods выставлен внешний IP на облаке Google - PullRequest
0 голосов
/ 06 октября 2018

Я создал образец приложения node.js и другие необходимые файлы (deploy.yml, service.yml), но у меня нет доступа к внешнему IP-адресу службы.

#kubectl get services

    NAME         TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)          AGE
    kubernetes   ClusterIP      10.7.240.1    <none>           443/TCP          23h
    node-api     LoadBalancer   10.7.254.32   35.193.227.250   8000:30164/TCP   4m37s

#kubectl get pods
NAME                        READY   STATUS    RESTARTS   AGE
node-api-6b9c8b4479-nclgl   1/1     Running   0          5m55s

#kubectl describe svc node-api
Name:                     node-api
Namespace:                default
Labels:                   <none>
Annotations:              <none>
Selector:                 app=node-api
Type:                     LoadBalancer
IP:                       10.7.254.32
LoadBalancer Ingress:     35.193.227.250
Port:                     <unset>  8000/TCP
TargetPort:               8000/TCP
NodePort:                 <unset>  30164/TCP
Endpoints:                10.4.0.12:8000
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason                Age    From                Message
  ----    ------                ----   ----                -------
  Normal  EnsuringLoadBalancer  6m19s  service-controller  Ensuring load balancer
  Normal  EnsuredLoadBalancer   5m25s  service-controller  Ensured load balancer

Когда я пытаюсь сделать curl на внешнем ip, он дает отказ в соединении

curl 35.193.227.250:8000
curl: (7) Failed to connect to 35.193.227.250 port 8000: Connection refused

Я также выставил порт 8000 в Dockerfile.Дайте мне знать, если я что-то упустил.

1 Ответ

0 голосов
/ 06 декабря 2018

Глядя на ваше описание в этой теме, кажется, что все в порядке.Вот что вы можете попробовать:

  1. SSH к узлу GKE, где работает модуль.Вы можете получить имя узла, выполнив ту же команду, которую вы использовали с флагом "-o wide".

    $ kubectl get pods -o wide

После этого выполните командуSSH, попробуйте свернуть Cluster, а также Service IP, чтобы увидеть, получили ли вы ответ или нет.

Попробуйте выполнить SSH для модуля

$ kubectl exec -it - / bin / bash

После этого запустите локальный хост, чтобы увидеть,вы получаете ответ или нет

$ curl localhost

Так что, если вы получите ответ после попытки выполнения вышеупомянутых шагов по устранению неполадок, это может быть проблемой, лежащей в основе GKE.Вы можете отправить отчет о дефекте здесь .

Если вы не получили никакого ответа при попытке выполнить описанные выше действия, возможно, вы где-то неправильно настроили кластер.

Мне кажется, это хорошая отправная точка для устранения неполадок в вашем случае использования.

...