Существует множество различных гипервизоров, которые могут работать с minikube
. Выбор одного будет сильно зависеть от переменных, таких как операционная система. Вот некоторые из них:
- Virtualbox
- Hyper-V
- VMware Fusion
- KVM2
- Hyperkit
- "Docker (
--vm-driver=none
)" (см. Цитаты)
Официальная документация говорит об этом: Kubernetes.io: Minikube: Указание драйвера vm
Выбор Hypervisor
повлияет на поведение minikube
.
Фокусировка на:
- Docker:
--vm-driver=none
- Виртуальная коробка:
--vm-driver=virtualbox
Docker
Официальная документация подводит итог:
Вывод команды $ sudo minikube ip
покажет IP-адрес хоста .
Тип объекта службы NodePort
будет доступен с IP_ADDRESS_OF_HOST:NODEPORT_PORT
.
После команды: $ kubectl get nodes -o wide
:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
K8S Ready master 95s v1.17.3 192.168.0.114 <none> Ubuntu 18.04.4 LTS 5.3.0-28-generic docker://19.3.8
Пожалуйста, укажите c посмотрите:
INTERNAL-IP
192.168.0.114
Это тот же IP-адрес в качестве хоста он работает на . Вы можете (например) curl
pods без каких-либо ограничений. Пожалуйста, прочитайте статью во включенном виде со ссылкой:
Внимание: Драйвер виртуальной машины none
может привести к проблемам безопасности и потери данных. Перед использованием --vm-driver=none
обратитесь к этой документации для получения дополнительной информации.
Вы можете проверить, что было выставлено с помощью команды: $ sudo netstat -tulpn
Virtualbox
Создание экземпляра minikube
с --vm-driver=virtualbox
создаст виртуальную машину с Virtualbox в качестве хоста.
Виртуальная машина, созданная с таким типом --vm-driver
, будет иметь 2 сетевых интерфейса, представленных ниже:
- NAT
- Адаптер только для хоста
Важно, чтобы ваш экземпляр мини-куба был доступен Адаптер только для хоста .
Сеть только с хостом. Это можно использовать для создания сети, содержащей хост и набор виртуальных машин, без необходимости использования физического сетевого интерфейса хоста. Вместо этого на хосте создается виртуальный сетевой интерфейс, похожий на интерфейс обратной связи, который обеспечивает связь между виртуальными машинами и хостом.
- Virtualbox.org: виртуальные сети
Например:
- Адаптер только для хоста minikube будет иметь адрес:
192.168.99.103
- Ваш адаптер только для хоста будет есть адрес:
192.168.99.1
Они должны быть разными!
Если у вас возникли проблемы с подключением к этому адаптеру, проверьте:
- Если адрес адаптера только для хоста minikube отвечает на
ping
при minikube start
успешно завершено. - Ваш адаптер только для хоста присутствует в конфигурации вашей сети, выдавая:
- Ваш адрес адаптера только для хоста находится в диапазоне вашего экземпляра мини-куба (su bnet)
Из моего опыта перезагрузка / воссоздание этого адаптера работало все время, если что-то был не прав.
В выводе команды $ sudo minikube ip
будет показан IP-адрес хост-адаптера .
Вслед за командой: $ kubectl get nodes -o wide
:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
m01 Ready master 29m v1.17.3 192.168.99.103 <none> Buildroot 2019.02.9 4.19.94 docker://19.3.6
Пожалуйста, обратите внимание c еще раз посмотрите на INTERNAL-IP
и ip address
, связанные с ним.
Тип объекта службы NodePort
будет доступен с: IP_ADDRESS_OF_HOST_ONLY_ADAPTER:NODEPORT_PORT
.
Я воссоздал ваши Deployment
и Service
, прикрепленные к нему, и это сработало в случаях --vm-driver=none
и --vm-driver=virtualbox
.
Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы в этой теме c.