Установка Minikube

Редко какой IT-инженер в наше время не слышал про DevOps и Kubernetes. Пожалуй, с каждого утюга сейчас об этом говорится. Вот и до меня дошло, как говорится. Начинаю погружаться в тему. Настроить кластер Kubernetes из нескольких узлов на начальном этапе знакомства с технологией дело, конечно, полезное, но гораздо более удобное решение на начальном этапе – это Minikube. В этой публикации я покажу, как выполняется установка Minikube. Опять же – это будет еще одна моя шпаргалка.

Ничего нового относительно официального руководства по установке тут не будет. Если вам будет удобнее можете использовать его. Но в этой публикации для удобства я соберу на одной странице все шаги по установке Minikube.

В качестве операционной системы я буду использовать Ubuntu 22.04.

Зачем нужен Minikube

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

С точки зрения работы с контейнерами, подами и объектами Kubernetes не будет никаких различий – работаете ли вы с кластером или с Minikube.

Предварительные требования

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

grep -E --color 'vmx|svm' /proc/cpuinfo

Если виртуализация включена, то вы должны увидеть примерно следующую строчку (по одному разу на каждое процессорное ядро):

flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl tsc_reliable nonstop_tsc cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves clzero wbnoinvd arat npt svm_lock nrip_save vmcb_clean flushbyasid decodeassists umip rdpid overflow_recov succor

Если вывод команды пустой – виртуализация не включена. Необходимо включить её. Тут все зависит от того, что вы используете – физический компьютер или виртуальную машину. Какого единого совета нет. Нужно смотреть либо настройки BIOS или настройки виртуальной машины. Для включения виртуализации физического компьютера можете использовать вот это опорное руководство. Для включения виртуализации VMware или VirtualBox можете использовать вот это опорное руководство.

Касательно аппаратных ресурсов – я бы рекомендовал минимум 4 ГБ оперативной памяти и 2 процессорных ядра. Даже сразу после установки и без какой-либо нагрузки Minikube потребляет порядка 2 ГБ оперативной памяти + вам еще нужна ОЗу непосредственно для хоста и рабочей нагрузки.

Установка предварительных компонентов

Перед тем, как мы начнем установку Minikube нам необходимо установить предварительное ПО. Его не много – утилита kubectl, которая позволяет управлять объектами Kubernetes и гипервизор, на котором будет развернута техническая виртуальная машина для работы Kubernetes. Эта виртуальная машина и будет являться единственным узлов кластера.

Установка kubectl

Подробная инструкция по установка kubectl приведена в официальном руководстве. Я приведу максимально сокращенную версию набора команд для установки kubectl:

curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

Проверяем, что утилита kubectl установлена корректно. Например, пока мы можем только проверить её версию. На этом этапе этого будет достаточно:

kubectl version --client

Установка гипервизора

В качестве гипервизора мы можем использовать две технологии:

  • KVM.
  • VirtualBox.

Я буду использовать VirtualBox. Соответственно, устанавливаем его:

sudo apt install virtualbox

Дожидаемся окончания процесса установки. Проверяем коррктно ли установился VirtualBox. На этом этапе нам также будет достаточно проверить его версию:

virtualbox -h

Как видно из скриншота выше мы установили VirtualBox корректно.

Установка Minikube

После установки kubectl и гипервизора у нас уже будет все готово для установки Minikube.

Устанавливаем Minikube следующим набором команд:

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
  && chmod +x minikube
sudo mkdir -p /usr/local/bin/
sudo install minikube /usr/local/bin/

Проверка работы Minikube

Теперь попробуем запустить Minikube:

minikube start --vm-driver=virtualbox

Запуститься процесс загрузки и настройки необходимых образов.

Дождитесь окончания процесса загрузки и настройки образов для virualbox. Ниже я приведу листинг успешного процесса загрузки и настройки образов:

roman@roman-virtual-machine:~$ minikube start --vm-driver=virtualbox
😄  minikube v1.28.0 on Ubuntu 22.04
✨  Using the virtualbox driver based on user configuration
💿  Downloading VM boot image ...
    > minikube-v1.28.0-amd64.iso....:  65 B / 65 B [---------] 100.00% ? p/s 0s
    > minikube-v1.28.0-amd64.iso:  274.45 MiB / 274.45 MiB  100.00% 10.91 MiB p
👍  Starting control plane node minikube in cluster minikube
💾  Downloading Kubernetes v1.25.3 preload ...
    > preloaded-images-k8s-v18-v1...:  385.44 MiB / 385.44 MiB  100.00% 10.88 M
🔥  Creating virtualbox VM (CPUs=2, Memory=2200MB, Disk=20000MB) ...
🐳  Preparing Kubernetes v1.25.3 on Docker 20.10.20 ...
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔎  Verifying Kubernetes components...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  Enabled addons: storage-provisioner, default-storageclass
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
roman@roman-virtual-machine:~$

Мы можем проверить статус компонентов Minikube:

minikube status
roman@roman-virtual-machine:~$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

Если вы перезагрузите хост, то повторный запуск Minikube выполняется командой:

minikube start

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *