Доступ к службе NodePort с другого компьютера в той же сети

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

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-адрес машины, где кластер развернуто) Я все еще получаю страницу не найдена.

Спасибо в продвижении за любую помощь.

kubernetes,kubectl,minikube,

0

Ответов: 3


0

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


0

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

IP-адрес вашего компьютера: 192.168.1.4 ваш мини-мини-IP: доступ 192.168.99.100 к вашему сервису из браузера на вашем компьютере:http://192.168.99.100:30080

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

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

Таким образом, вы можете попробовать: Virtualbox «переместить порт» от Guest к Host .

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


0

Вы можете использовать "port forward a service". Предполагая , что:

  • Ваш локальный компьютер IP: 166.6.6.6(который держит мини-куб)
  • Ваш IP-адрес minikube: 192.168.99.100(проверьте реальный IP-адрес с помощью команды $minikube ip)
  • NodePort вашей службы «мой-nodejs-приложение»: 31000(проверить реальную nodePort с помощью команды: $kubectl get service)

Чтобы получить доступ к вашему сервису с удаленного устройства, вы можете перенаправить порт (например, 31000, порекомендовать тот же порт с nodePort) в свою службу с помощью следующей команды на вашем локальном компьютере:

ssh -i ~ /. minikube / machines / minikube / id_rsa docker @ $ (minikube ip) -L *: 31000: 0.0.0.0: 31000

Затем вы можете получить доступ к своей службе через URL-адрес:, http://166.6.6.6:31000который будет перенаправлен на ваш URL-адрес службыhttp://192.168.99.100:31000

Thx: https://github.com/kubernetes/minikube/issues/877

губернец, куветт, миникуб,
Похожие вопросы
Яндекс.Метрика