Я отключил входной аддон и установил nginx вход с упомянутой вами картой руля. Я протестировал его и нашел решение для вас.
Когда вы запустите:
$ kubectl get services nginx-ingress-controller
, вы должны увидеть этот вывод:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-ingress-controller LoadBalancer 10.96.245.213 <pending> 80:30240/TCP,443:31224/TCP 50s
Обратите внимание, что EXTERNAL-IP в состоянии ожидания.
minikube не будет назначать этот IP сам по себе, вам нужно сделать это вручную.
Запустите kubectl edit svc nginx-ingress-controller
и добавьте поле externalIPs
в поле spec:
следующим образом:
spec:
externalIPs:
- 192.168.39.241 # minikube ip
Теперь посмотрим, почему это работает. Обычно при запуске kubernetes в облаке environemnt при создании службы типа LoadBalancer облачный контроллер создает балансировщик нагрузки и обновляет IP-адрес службы, но поскольку вы запускаете его на мини-кубе, где не работает ни одно облако с указанными c функциями, вам нужно добавьте адрес вручную.
Это может быть любой IP-адрес любого интерфейса, связанного с вашим кластером, поэтому он также должен работать при наличии большего количества узлов. Вы можете добавить IP любого интерфейса ваших узлов, и kuberentes будет привязывать порт к этому интерфейсу, и с этого момента вы можете отправлять ему трафик c, и он будет перенаправлен на соответствующий сервис / модуль.
Позвольте мне знаю, это было полезно.