Я пытаюсь получить доступ к простому кластеру minikube из браузера, но получаю следующее:
❗ Because you are using a Docker driver on windows, the terminal needs to be open to run it.
Я создал внешнюю службу для кластера с номером порта 30384 и запускаю minikube в док-контейнере.
Я использую пример «Hello Minikube», чтобы создать свое развертывание.
Шаг 1: я создал развертывание:
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
Шаг 2: я создал внешнюю службу:
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
Шаг 3: Я запустил службу, и вот где я набил
"minikube service hello-node
Полное ответное сообщение:
❗ Executing "docker container inspect minikube --format = {{.State.Status}}" took an unusually long time: 2.3796077s
? Restarting the docker service may improve performance.
? Starting tunnel for service hello-node.
? Opening service default/hello-node in default browser...
❗ Because you are using a Docker driver on windows, the terminal needs to be open to run it.
Я попытался запустить службу, чтобы сделать ее доступной из браузера, однако мне это не удалось.
Я решил ту же проблему, изменив базовый драйвер minikube на hyperv из докера.
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Ваш компьютер перезагрузится после этого вы можете сказать
minikube config set driver hyperv
Затем minikube start
запустит вас с этим драйвером.
Это сработало для меня.
Он по-прежнему может работать с образом докера, поскольку kubectl всегда доступен независимо от драйвера. Драйвер существует только для обеспечения виртуализации с хост-ОС. Я также работал с образом докера, и это сработало для меня.
Вы можете заставить это работать, используя возможности kubectl по переадресации портов.
Например, если вы используете службу hello-node
:
kubectl port-forward svc/hello-node 27017:27017
Это выставит сервис на localhost:27017
Вы также можете упомянуть свой модуль вместо службы с помощью той же команды, вам просто нужно указать свой pods/pod-name
, вы можете подтвердить свое имя модуля с помощью kubectl get pods
Это не его случай, поскольку он работает с образом докера, как вы можете получить контейнерный образ в Hyper-V?