Доступ к сервису Kubernetes, работающему локально в Docker For Desktop? - PullRequest
0 голосов
/ 04 мая 2018

Я использую Docker For Desktop со встроенным кластером Kubernetes. Я установил Pod, который обслуживает ресурсы по HTTP, но я не уверен, как получить к нему доступ через мой браузер. У меня есть следующий ServiceSpec, который правильно направляет трафик на Pod:

spec:
  clusterIP: 10.99.132.220
  externalTrafficPolicy: Cluster
  ports:
  - name: myport
    nodePort: 31534
    port: 8037
    protocol: TCP
    targetPort: 80
  type: LoadBalancer

И я вижу, как он настроен, когда я запрашиваю его с помощью kubectl:

$ kubectl get service
NAME           TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
myservice   LoadBalancer   10.99.132.220   localhost     8037:31534/TCP   1h

Как мне связаться с этой службой, используя мой браузер?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Для локальной разработки вы можете использовать тип NodePort для службы (см. https://kubernetes.io/docs/concepts/services-networking/service/#nodeport).. Это связывает заданную nodePort, как следует из названия, с портом вашего узла (который должен быть localhost для докера на рабочем столе).

Тогда услуга должна быть доступна об http://localhost:31534.

0 голосов
/ 04 мая 2018

Эта служба будет доступна в вашем браузере по адресу http://localhost:8037

Обратите внимание, что порт 8037 соответствует свойству port объекта ServiceSpec.

Если вы не можете связаться со службой по этому URL, это может быть одна из нескольких причин, включая, но не ограничиваясь:

  • В вашем кластере есть еще один Service, который объявил этот порт. Либо удалите другой Service, либо измените свойство port на невостребованный порт.
  • Ваш Pod не работает и не готов. Чек kubectl get pods.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...