2016-12-03 10 views
0

Я установил minikube на свой Mac и создал развертывание и службу для приложения nodejs. Я тестировал, что все работает, получив URL моего сервиса, используя следующую команду:Доступ к службе NodePort с другого компьютера в той же сети

minikube service my-nodejs-app -url, а затем я запускаю этот URL-адрес в браузере и получаю результаты. Проблема в том, что когда я пытался получить доступ к тому же URL-адресу с другого компьютера внутри той же сети, он не работал.

мой файл .yml обслуживание:

apiVersion: v1 
kind: Service 
metadata: 
    name: my-nodejs-app 
spec: 
    type: NodePort 
    ports: 
    - port: 80 
    targetPort: 1337 
    protocol: TCP 
    name: app-server 
    selector: 
    app: my-nodejs-app 

Я пытался использовать перенаправление портов, чтобы направить свой стручок порт для моего локального хоста, и он работает только на той же машине, которая у себя кластер, и когда я пытаюсь получить доступ с другого компьютера в той же сети (через IP-адрес машины, где развернуто кластер). Я все еще не получаю страницу.

Спасибо, за помощь.

ответ

0

Звучит как достижение его с другой машины по сравнению с разоблачением ssevice в Интернете. В этом случае вам нужно смотреть в спецификации/типа: LoadBalancer (http://kubernetes.io/docs/user-guide/load-balancer/) , что сказал, с minikube я бы прилипает к одной машине и развитие тестирует только

+0

Спасибо, но я разрабатываю мобильное приложение, и когда я пытаюсь протестировать приложение на реальном мобильном устройстве, это невозможно, потому что я не могу связаться с мобильным устройством до службы. BTW - я нашел способ сделать это, установив обратный прокси-сервер (NGINX), который перенаправляет запрос на мою услугу, но я хотел узнать, есть ли лучший способ. –

+0

Вы изучили настройку службы с помощью типа loadbalancer ? Потому что это лучший способ (путь кубернетов), и это то, что я имел в виду выше – Ben

+0

В мини-кубе вы не можете использовать LoadBalancer, тип сервиса должен быть NodePort –

0

Если я правильно понимаю вашу проблему правильно:

IP вашей машины: 192.168.1.4 Ваш minikube IP: 192.168.99.100 доступ к вашим услугам с помощью браузера на вашем компьютере: http://192.168.99.100:30080

Теперь, скажем, вы на другой машине, скажем 192.168.1.5, и вы хотите получить доступ к этому S е р в.

Проблема заключается в том, что вам необходимо сопоставить порт вашей машины с 30080 мини-микроавтобусом, потому что minikube - это виртуальная машина, работающая на вашем компьютере (к которой нельзя получить доступ извне вашей машины).

Вы можете попробовать: Virtualbox "port forward" from Guest to Host.

Другой альтернативой является перенаправление порта с вашего локального хоста на блок напрямую (а не k8s svc, к сожалению), используя kubectl port-forward.

+0

привет @iamnat, я попробовал kubectl port-forward (который, кажется, лучшее решение), но его не работает ... Я могу попробовать подход «вперед» на VirtualBox но разве вы не думаете, что лучше установить NGINX в качестве обратного прокси? (это мое текущее рабочее решение ..) –