Где minikube развертывает модули

#kubernetes #minikube

#kubernetes #minikube

Вопрос:

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

 sudo minikube start --driver=none --apiserver-ips 127.0.0.1 --apiserver-name localhost
 

Затем я развернул свой контейнер через kubernetes.
После выполнения моей docker ps команды я могу видеть их на своем локальном компьютере.

 fb41c2836a70        2f26ec35a739          "/bin/bash -ce someApp"  23 minutes ago      Up 23 minutes k8s_someapp-7cbc9c4c87-lrrpm_default_d50b97bc-5200-404d-ad33-0d235d647614_0
a5faa3ec7539        k8s.gcr.io/pause:3.2  "/pause"                 23 minutes ago      Up 23 minutes k8s_app-7cbc9c4c87-lrrpm_default_d50b97bc-5200-404d-ad33-0d235d647614_0
e175dbd7b6ea        207456039af0          "/bin/bash -ce cmd"      53 minutes ago      Up 53 minutes k8s_appd-69585dc55c-f7k4d_default_a6619c13-7341-4ca3-9dee-ee26b8fd0b2a_1

 

Что здесь происходит, я не мог понять.

Ответ №1:

minikube — это НЕ виртуальная машина, minikube — это инструмент командной строки,

minikube запускает виртуальную машину с установленным и запущенным k8s. Указав --driver=none , что вы указываете: «Я не хочу использовать какой-либо драйвер виртуальной машины», и поэтому minikube не будет использовать какой-либо драйвер и просто запустит k8s на вашем хосте.

Если вы хотите запустить k8s на виртуальной машине, вам необходимо использовать драйвер виртуальной машины. От minikube start --help :

—driver=»: Драйвер является одним из: virtualbox, vmwarefusion, kvm2, vmware, none, docker, podman (экспериментальный) (по умолчанию используется автоматическое определение)

Если вы хотите использовать виртуализацию, используйте один из поддерживаемых драйверов.

Какой из них? Virtualbox бесплатен и доступен для большинства платформ. kvm2 — это только Linux. Docker — это не виртуальная машина, а платформа изоляции контейнеров.

Быстрый поиск в Google показал мне эту ссылку: https://minikube.sigs.k8s.io/docs/drivers /. Ознакомьтесь с этим, чтобы узнать больше о поддерживаемых драйверах.

Комментарии:

1. Но здесь задействована какая-то виртуализация, верно… Потому что я смог развернуть несколько контейнеров, используя один и тот же порт. и я не смог получить прямой доступ к этому порту, для этого мне пришлось использовать переадресацию портов. Это тоже ожидаемое поведение?

2. «Виртуализация», о которой вы говорите, называется docker, а не виртуализация как таковая. Контейнеры не являются виртуальными машинами. И, говоря о контейнерных сетях, да, это ожидаемое поведение. Если вы хотите узнать больше, прочитайте о сетевой модели kubernetes .