Часть 3. Узнайте, что такое Minikube и Kubectl и как настроить кластер Minikube.

Прежде чем продолжить, не забудьте прочитать: Архитектура Kubernetes [2]

Когда мы настраиваем производственный кластер —
*Нам нужно несколько мастер-узлов, не менее двух.
*Мы также требуется несколько рабочих узлов, не менее трех.
*Эти несколько главных и рабочих узлов устанавливаются на виртуальных или физических машинах.

Теперь для тестирования на локальном компьютере нам нужно достаточно ресурсов, таких как RAM, CPU и Storage, чтобы настроить несколько главных и рабочих узлов. Так что иметь все эти ресурсы на одной локальной машине становится сложно! Для этого мы используем «Minikube».

Что такое Миникуб?

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

Что такое Кубектл?

У нас есть Minikube и у нас есть настройка виртуальной машины, теперь нам нужен способ отправки команд в кластер узлов для создания модуля, уничтожения модуля, создания сервисов и т. д. и это можно сделать с помощью Kubectl.

Kubectl — это инструмент командной строки для кластера K8s.

Minikube запускает как главный, так и рабочий узел на одной виртуальной машине, а точкой входа главных процессов является сервер API для отправки команд на сервер API, который мы используем Kubectl. (перейдите по этой ссылке, чтобы узнать больше об этих процессах и их точках входа-выхода.)

Kubectl можно использовать для обоих:

* Minikube — для локального тестирования.
* Облачные кластеры — для производственной настройки.

Установить Миникуб

Я использую компьютер с Windows — для других операционных систем может быть другой подход к настройке Minikube и Kubectl.

Необходимые условия перед началом работы

  • Hyper-V установлен на вашем компьютере с Windows 10
  • Менеджер пакетов Windows ChocoChocolatey

Самый простой способ установить Minikube — развернуть из choco.
Chocolatey (choco) — это менеджер пакетов для Windows (например, apt-get или yum).

  • Установите choco с помощью PowerShell (запуск от имени администратора):
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1'))

  • После установки проверьте наличие доступных обновлений для choco:
choco upgrade chocolatey

  • Установите kubectl cli с помощью PowerShell (запуск от имени администратора):
choco install kubernetes-cli

  • Установите minikube с помощью PowerShell (запуск от имени администратора):
choco install minikube

  • Пробная установка миникуба:
minikube version

  • Инициировать minikube
    Проверьте доступные параметры инициализации:
minikube.exe start — help

Вот так это должно выглядеть…

Minikube поставляется с установленным Docker.

  • Получить статус узлов:
kubectl get nodes

  • Получить статус Minikube:
minikube status

Хост работает, сервис kubelet работает, сервер API тоже работает.

  • Проверка версии Kubernetes:
kubectl version

  • Запустите модули:
kubectl get pod

  • Запустите службы:
kubectl get services

Создание компонентов K8s

Получите список всех команд создания, выполнив:

kubectl create -h

Напоминание: Поды — это наименьшая единица в K8s. Но мы не можем напрямую создавать поды. Нам нужно использовать развертывание, которое является абстракцией над подами. Итак, нам нужно создать развертывание и создать поды.

Команда для создания развертывания:

kubectl create deployment NAME_OF_DEPLOYMENT --image=image [--dry-run] [options]

Например: давайте создадим развертывание для образа Nginx. Это загрузит последний образ Nginx из Docker Hub.

  • Запустите развертывание:
kubectl get deployment

  • Запустите модули:
kubectl get pod

  • Получить набор реплик: (набор реплик автоматически управляется kubectl, мы не создаем, не удаляем и не обновляем его. При развертывании мы можем настроить необходимое количество реплик)
kubectl get replicaset

Изменить команду развертывания

kubectl edit deployment [ deployment-name ]

Отредактируйте наше предыдущее развертывание:

kubectl edit deployment nginx-deployment

Эта команда откроет автоматически сгенерированный файл конфигурации со значениями по умолчанию, K8s сгенерирует этот файл.

После внесения изменений в файл — сохраните этот файл. Это должно показать [deployment.apps/botkube отредактировано] в вашем Powershell.

Журналы Кубектла

Чтобы увидеть, что работает внутри приложения, используйте Kubectl Logs. Запустите следующую команду с именем пода.

kubectl logs [ pod-name ]

Получите журналы, используя созданное нами имя пода:

kubectl logs nginx-deployment-84cd76b964-ks978

Кубектл исполнитель

kubectl exec получает информацию внутри контейнера Pod, где -it — интерактивный терминал.

kubectl exec -it [ pod-name ] -- sh

Запустите следующую команду, используя созданное нами имя пода:

kubectl exec -it nginx-deployment-84cd76b964-ks978 -- sh

  • Kubectl удаляет развертывание, чтобы удалить развертывание:
kubectl delete deployment [ deployment-name ]
kubectl delete deployment nginx-deployment

Спасибо за прочтение :)

Далее:Руководство по установке BotKube в кластере Kubernetes [4]

Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.