Часть 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 Choco — Chocolatey
Самый простой способ установить 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.