#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 .