Поиск по сайту:

Как запустить локальный кластер Kubernetes с помощью Minikube


Minikube — это минимальный дистрибутив Kubernetes, предназначенный для использования в локальной разработке. Он разработан в рамках проекта Kubernetes и включает в себя реализации всех основных функций кластера.

Minikube работает на хостах Linux, Mac и Windows. Он может использовать контейнеры или среду виртуальной машины для запуска вашего кластера и его рабочих нагрузок. Вот все поддерживаемые среды выполнения:

  • Докер
  • Подман
  • КВМ
  • Гипер-V
  • Гиперкит
  • Параллели
  • Виртуальная коробка
  • VMware

Прежде чем продолжить работу с этим руководством, убедитесь, что у вас установлена одна из этих технологий. Процесс установки Minikube автоматически обнаружит доступные среды выполнения и применит соответствующую конфигурацию. Мы покажем вам, как завершить развертывание и начать использовать Minikube.

Установка миникуба

В этом руководстве мы сосредоточимся на системах x86 Linux. Если вы используете Windows, Mac или другую платформу ЦП, обратитесь к документации Minikube, чтобы получить наиболее подробную информацию о настройке. После первоначальной процедуры установки базовое использование Minikube идентично во всех поддерживаемых системах.

Пользователи Linux могут выбирать между прямой загрузкой бинарного файла или пакетом Debian/RPM. В этом примере мы будем использовать бинарную загрузку.

$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube

Теперь Minikube будет установлен и готов к использованию.

Запуск кластера Kubernetes

Запустите свой кластер Minikube с помощью команды minikube start:

$ minikube start
minikube v1.25.2 on Ubuntu 20.04
Automatically selected the docker driver. Other choices: kvm2, ssh
Starting control plane node minikube in cluster minikube
Pulling base image ...
Downloading Kubernetes v1.23.3 preload ...

Minikube автоматически загрузит и запустит последнюю версию Kubernetes. Этот процесс может занять несколько минут. Выходные данные команды будут указывать на прогресс и отображать действия, предпринимаемые Minikube. В приведенном выше примере вы можете видеть, что драйвер Docker был выбран для размещения вашего кластера. Обратитесь к документации драйвера Minikube, если ваша контейнерная платформа или стек виртуализации не определяются автоматически.

Использование вашего кластера с Kubectl

Minikube изменяет вашу среду, чтобы вы могли подключиться к своему кластеру, используя существующую установку Kubectl. Он добавит контекст minikube в ваш файл KUBECONFIG, предназначенный для вашего кластера Minikube.

Minikube также включает связанную версию Kubectl, доступ к которой можно получить с помощью команды minikube kubectl. Это полезно, если у вас еще не установлен Kubectl или ваш существующий двоичный файл отличается от версии вашего кластера Minikube.

# Uses the Kubectl version that's bundled with Minikube
$ minikube kubectl get pods

В оставшейся части этого руководства мы покажем простую команду kubectl и предположим, что она нацелена на ваш кластер Minikube. Вы можете настроить псевдоним оболочки для использования связанного с Minikube Kubectl без префикса minikube каждый раз:

$ alias kubectl="minikube kubectl"

Теперь, когда доступны Minikube live и Kubectl, вы можете добавлять приложения в свой кластер Kubernetes:

$ kubectl create deployment nginx --image=nginx:latest
deployment.apps/nginx created
$ kubectl expose deployment nginx --type=LoadBalancer --port=80
service/nginx exposed

Команда minikube service предоставляет открытый URL-адрес службы:

$ minikube service nginx --url
http://192.168.49.2:31599

Вставьте URL-адрес в свой веб-браузер (или запустите команду без флага --url), чтобы просмотреть свой сервис.

Доступ к панели управления Kubernetes

Minikube предоставляет панель инструментов Kubernetes в качестве дополнительной встроенной функции. Запустите команду minikube dashboard, чтобы загрузить компоненты панели управления и запустить интерфейс в новой вкладке браузера.

Вы можете использовать панель мониторинга для управления своими ресурсами и визуализации их активности. Держите команду minikube dashboard запущенной в терминале, пока вы взаимодействуете с панелью управления. Когда закончите, завершите команду комбинацией клавиш Ctrl+C.

Включение реестра образов

Minikube включает реестр образов в качестве дополнительного дополнения. Это позволяет хранить образы контейнеров внутри Minikube, делая их доступными для развертывания внутри вашего кластера.

Сначала включите надстройку реестра:

$ minikube addons enable registry

Затем пометьте свое изображение, чтобы оно ссылалось на реестр Minikube. Реестр прослушивает порт 5000 на IP-адресе, предоставленном командой minikube ip.

$ docker tag my-image:latest $(minikube ip):5000/my-image:latest

Прежде чем вы сможете отправить, Docker должен быть настроен так, чтобы он принимал URL-адрес как небезопасный реестр. Добавьте его в поле insecure-registries в файле /etc/docker/daemon.json, чтобы Docker разрешил доступ по HTTP.

{
    "insecure-registries": ["192.168.49.2:5000"]
}

Замените IP-адрес на тот, который указан в вашей команде minikube ip. Перезапустите Docker с помощью команды systemctl restart docker.

Теперь вы можете отправить свой образ в реестр Minikube:

$ docker push $(minikube ip):5000/my-image:latest

Требуется последний шаг, прежде чем поды в вашем кластере смогут использовать этот образ. Среда выполнения контейнера Minikube также должна быть настроена для разрешения небезопасного доступа к реестру. Вы можете включить это, включив флаг --insecure-registry при запуске minikube start. IP-адрес должен относиться к IP-адресу кластера по умолчанию вашей установки Minikube. Вы можете получить это, запустив kubectl get services и просмотрев CLUSTER-IP для службы kubernetes. Затем остановите Minikube и перезапустите его с дополнительным флагом.

$ kubectl get service
NAME              TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes        ClusterIP      10.96.0.1       <none>        443/TCP          63m

$ minikube stop
$ minikube start --insecure-registry 10.96.0.1/24

Изменение версии Kubernetes

Minikube по умолчанию использует новейшую доступную версию Kubernetes. Чтобы переключиться на определенную версию, включите флаг --kubernetes-version при запуске кластера:

$ minikube start --kubernetes-version=v1.23.0

Вы можете запускать несколько кластеров одновременно, каждый с разными версиями Kubernetes, создав несколько отдельных профилей. Флаг --profile выбирает целевой профиль для конкретной команды.

$ minikube start --profile v1.22 --kubernetes-version=v1.22.0
$ minikube start --profile v1.23 --kubernetes-version=v1.23.0
$ minikube --profile v1.22 kubectl get pods

Использование нескольких узлов

Minikube поддерживает несколько виртуальных узлов. Это позволяет вам проверить, как ваше приложение масштабируется на доступных узлах, без развертывания нового физического оборудования.

В этом примере создается кластер с тремя узлами:

$ minikube start --nodes 3

Вы можете убедиться, что несколько узлов доступны, перечислив их с помощью Kubectl:

$ kubectl get nodes
NAME           STATUS   ROLES                  AGE   VERSION
minikube       Ready    control-plane,master   71m   v1.23.3
minikube-m02   Ready    <none>                 71m   v1.23.3
minikube-m03   Ready    <none>                 71m   v1.23.3

Включение удаленного доступа

Minikube по умолчанию не принимает входящий трафик. Он предназначен для локального использования и не предназначен для обслуживания внешних запросов. Вы по-прежнему можете включить удаленный доступ к рабочим нагрузкам в своем кластере, изменив адрес прослушивания плоскости управления. Делайте это только после полной оценки рисков — ваша сеть будет открыта для внешнего мира.

$ minikube start --listen-address=0.0.0.0

Перенаправление портов — более безопасное решение, когда вам нужно открыть доступ к определенному сервису. Используйте команду Kubectl port-forward, чтобы создать маршрут от хост-порта к одному из ваших сервисов:

$ kubectl port-forward service/nginx 8080:80

Теперь вы можете посетить localhost:8080, чтобы получить доступ к сервису NGINX, созданному ранее в этом руководстве. Порт 8080 на вашем хосте привязан к порту 80 службы.

Удаление миникуба

Одним из преимуществ Minikube является простота его удаления. Если вы решите, что Minikube не для вас, запустите команду delete, чтобы удалить все, что он добавил в вашу систему:

$ minikube delete

Менее разрушительным вариантом является minikube stop, который остановит ваш кластер, но оставит все ресурсы нетронутыми. Вы можете перезапустить кластер с помощью команды minikube start.

Заключение

Minikube — это автономный дистрибутив Kubernetes, который использует контейнеры или виртуализацию для запуска кластера на вашем локальном компьютере. Он поддерживается вышестоящим проектом Kubernetes. Minikube — это полнофункциональная реализация Kubernetes, которая включает в себя панель инструментов Kubernetes, поддержку сети, постоянное хранилище и взаимозаменяемые среды выполнения контейнеров.

Вы можете узнать больше о Minikube в официальной документации. В качестве альтернативы начните использовать знакомые команды Kubectl для управления кластером и развертывания новых рабочих нагрузок. Теперь у вас есть полностью функционирующая локальная среда Kubernetes для создания и тестирования ваших приложений.




Все права защищены. © Linux-Console.net • 2019-2024