Познакомьтесь с инструментом оркестрации Kubernetes Minikube в одной статье.
Познакомьтесь с инструментом оркестрации Kubernetes Minikube в одной статье.
Hello Ребята, да Луга, сегодня мы поговорим о ключевых технологиях облачной экосистемы. Kubernetes Договариватьсяинструмент —— Minikube。

01

Зачем вам нужны инструменты Minikube?

Благодаря быстрому развитию и широкому распространению контейнерных технологий Kubernetes играет важную роль на предприятиях. Обычно мы описываем Kubernetes как «управление кластерами контейнеров Linux как единой системой для ускорения разработки и упрощения обслуживания». Для контейнеризации сервисов корпоративных приложений изучение и использование Kubernetes стало неизбежной частью.

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

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

Кроме того, поставщики облачных услуг также предоставляют управляемые сервисы Kubernetes, такие как Amazon EKS, Google Kubernetes Engine (GKE) и Microsoft Azure Kubernetes Service (AKS). Эти управляемые сервисы устраняют сложность базовой инфраструктуры, позволяя персоналу DevOps сосредоточиться на развертывании приложений и управлении ими, не беспокоясь о деталях базового кластера Kubernetes.

Таким образом, те специалисты по DevOps, которые плохо знакомы с Kubernetes, могут использовать эти инструменты и управляемые сервисы, чтобы упростить развертывание и управление Kubernetes. По мере накопления опыта и углубленного обучения они смогут постепенно освоить и понять все аспекты Kubernetes, а также смогут развертывать и управлять сложными многоузловыми кластерами Kubernetes в реальных производственных средах.

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

02

Что такое инструменты Minikube?

Kubernetes — это система оркестровки с открытым исходным кодом для контейнеров Docker, разработанная на основе языка Go. Он управляет планированием узлов в вычислительном кластере и активно управляет рабочими нагрузками, чтобы гарантировать, что их статус соответствует заявленному намерению пользователя. В то же время, однако, Minikube подробно описывается как «собственный движок Kubernetes» с открытым исходным кодом, который позволяет создавать собственные кластеры Kubernetes на платформах macOS, Linux и Windows. Являясь одним из лучших инструментов для совместной работы, официально рекомендованных Kubernetes, Minikube стремится стать инструментом для разработки собственных приложений Kubernetes и поддерживает все применимые функции Kubernetes.

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

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

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

03

знаю другое Minikube стек технологий

Основываясь на соответствующих функциях Minikube, мы кратко опишем технологии, поддерживаемые Minikube, с различных точек зрения, таких как операционная система (ОС), архитектура ЦП, технология управления программами (технология гипервизора), среда выполнения контейнера (CRI) и подключаемый модуль сетевого интерфейса контейнера. ins (CNI). Форма текущего стека показана на рисунке ниже:

1. Операционная система (ОС):

Minikube поддерживает работу в различных операционных системах, включая, помимо прочего, следующие:

macOS: Minikube может работать на macOS, предоставляя удобную локальную среду разработки и тестирования.

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

Windows: Minikube может работать на платформе Windows, предоставляя пользователям Windows локализованную среду разработки Kubernetes.

2. Архитектура процессора:

Minikube может адаптироваться к различным архитектурам ЦП, включая, помимо прочего, следующие:

Архитектура x86: Minikube поддерживает процессоры с архитектурой x86, которая в настоящее время является наиболее распространенной архитектурой процессоров для настольных компьютеров и серверов.

Архитектура ARM: Minikube также поддерживает архитектуру ARM, архитектуру процессора, обычно встречающуюся во встроенных и мобильных устройствах.

3. Технология управления программами (технология Гипервизора):

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

VirtualBox: Minikube может использовать VirtualBox в качестве менеджера виртуализации для создания виртуальных машин на локальном компьютере и управления ими.

HyperV: для платформ Windows Minikube поддерживает использование HyperV в качестве менеджера виртуализации и предоставляет локализованную среду Kubernetes.

KVM2: на платформе Linux Minikube может использовать KVM2 в качестве менеджера виртуализации для создания локальных кластеров Kubernetes и управления ими.

4. Среда выполнения контейнера (CRI):

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

Docker: Minikube, одна из самых популярных сред выполнения контейнеров, поддерживает использование Docker для создания контейнеров и управления ими, позволяя приложениям запускаться как контейнеры в локальном кластере Kubernetes.

Containerd: Minikube также поддерживает использованиеContainerd в качестве среды выполнения контейнера.Containerd — это облегченная среда выполнения контейнера, предоставляющая Kubernetes возможности управления контейнерами.

5. Плагины сетевого интерфейса контейнера (CNI):

Minikube поддерживает множество плагинов сетевого интерфейса контейнеров для обеспечения сетевой связи и соединений между контейнерами. Ниже приведены некоторые распространенные плагины сетевого интерфейса контейнера, поддерживаемые Minikube:

Calico: Minikube может интегрировать Calico в качестве подключаемого модуля сетевого интерфейса контейнера для обеспечения функций сетевой политики и безопасности.

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

04

Базовое развертывание и установка инструментов Minikube

Установка и развертывание Minikube относительно просты. Здесь мы возьмем платформу macOS в качестве примера, чтобы дать краткое представление следующим образом:

Язык кода:javascript
копировать
[administrator@JavaLangOutOfMemory ~ ]% brew  install minikube
Язык кода:javascript
копировать
[administrator@JavaLangOutOfMemory ~ ]% minikube start

Конечно, мы также можем настроить параметры запуска, как показано ниже:

Язык кода:javascript
копировать
[administrator@JavaLangOutOfMemory ~ ]%  minikube start --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.x.x.iso
                 --registry-mirror=https://registry.docker-cn.com
                 --image-mirror-country=cn
                 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
                 --vm-driver=none
                 --memory=4096

После завершения развертывания определите соответствующие параметры конфигурации и т. д.

Язык кода:javascript
копировать
[administrator@JavaLangOutOfMemory ~ ]% kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.2", GitCommit:"092fbfbf53427de67cac1e9fa54aaa09a28371d7", GitTreeState:"clean", BuildDate:"2021-06-16T12:52:14Z", GoVersion:"go1.16.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.7", GitCommit:"132a687512d7fb058d0f5890f07d4121b3f0a2e2", GitTreeState:"clean", BuildDate:"2021-05-12T12:32:49Z", GoVersion:"go1.15.12", Compiler:"gc", Platform:"linux/amd64"}
Язык кода:javascript
копировать
[administrator@JavaLangOutOfMemory ~ ]% kubectl get node -o wide
NAME       STATUS   ROLES                  AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIME
minikube   Ready    control-plane,master   15h   v1.20.7   192.168.49.2   <none>        Ubuntu 20.04.2 LTS   5.10.25-linuxkit   docker://20.10.7
[administrator@JavaLangOutOfMemory ~ ]% kubectl get pod -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-74ff55c5b-p6dlz            1/1     Running   0          15h
kube-system   etcd-minikube                      1/1     Running   0          15h
kube-system   kube-apiserver-minikube            1/1     Running   0          15h
kube-system   kube-controller-manager-minikube   1/1     Running   0          15h
kube-system   kube-proxy-dcr72                   1/1     Running   0          15h
kube-system   kube-scheduler-minikube            1/1     Running   0          15h
kube-system   storage-provisioner                1/1     Running   3          15h 

Общая командная строка выглядит следующим образом:

Язык кода:javascript
копировать
[administrator@JavaLangOutOfMemory ~ ] % minikube --help
minikube provisions and manages local Kubernetes clusters optimized for development workflows.

Basic Commands:
  start          Starts a local Kubernetes cluster
  status         Gets the status of a local Kubernetes cluster
  stop           Stops a running local Kubernetes cluster
  delete         Deletes a local Kubernetes cluster
  dashboard      Access the Kubernetes dashboard running within the minikube cluster
  pause          pause Kubernetes
  unpause        unpause Kubernetes

Images Commands:
  docker-env     Configure environment to use minikube's Docker daemon
  podman-env     Configure environment to use minikube's Podman service
  cache          Add, delete, or push a local image into minikube
  image          Manage images

Configuration and Management Commands:
  addons         Enable or disable a minikube addon
  config         Modify persistent configuration values
  profile        Get or list the current profiles (clusters)
  update-context Update kubeconfig in case of an IP or port change

Networking and Connectivity Commands:
  service        Returns a URL to connect to a service
  tunnel         Connect to LoadBalancer services

Advanced Commands:
  mount          Mounts the specified directory into minikube
  ssh            Log into the minikube environment (for debugging)
  kubectl        Run a kubectl binary matching the cluster version
  node           Add, remove, or list additional nodes
  cp             Copy the specified file into minikube

Troubleshooting Commands:
  ssh-key        Retrieve the ssh identity key path of the specified node
  ssh-host       Retrieve the ssh host key of the specified node
  ip             Retrieves the IP address of the specified node
  logs           Returns logs to debug a local Kubernetes cluster
  update-check   Print current and latest version number
  version        Print the version of minikube
  options        Show a list of global command-line options (applies to all commands).

Other Commands:
  completion     Generate command completion for a shell

Use "minikube <command> --help" for more information about a given command.

05

Анализ принципов архитектуры инструмента Minikube

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

Конкретные принципы реализации включают следующее:

1. Загрузите файл .iso, чтобы сделать локальную среду доступной.

В процессе запуска Minikube вам сначала необходимо загрузить файл .iso, чтобы убедиться, что локальная среда доступна. Этот файл .iso обычно содержит дистрибутив Linux (обычно boot2docker), а также необходимые инструменты и зависимости.

2. Извлеките файл образа boot2docker.iso из загруженного файла .iso.

Извлеките файл образа boot2docker.iso из загруженного файла .iso. Этот образ представляет собой облегченную операционную систему Linux, предназначенную для работы в Minikube.

3. Создайте динамический сертификат для целей SSH.

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

4. Создайте файл виртуальной машины VirtualBox, используя указанную конфигурацию.

Используйте программное обеспечение виртуализации VirtualBox, чтобы создать файл виртуальной машины (VM) на основе указанной информации о конфигурации. Эта виртуальная машина будет служить узлом для кластера Minikube.

5. Настройте хранилище для монтирования файла boot2docker.iso.

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

6. Установите сетевые конфигурации (IP, DHCP и т. д.), настройте SSH на виртуальной машине и т. д.

Настройте сетевые параметры виртуальной машины, такие как назначение IP-адреса виртуальной машине, настройка DHCP и т. д. Кроме того, настройте SSH внутри виртуальной машины, чтобы разрешить удаленные подключения и управление через SSH к виртуальной машине.

7. Запустите виртуальную машину.

Теперь запустите виртуальную машину и дождитесь завершения процесса запуска. После успешного запуска виртуальной машины она становится узлом в кластере Minikube.

8. Установите файлы /etc/hostname, /etc/hosts и systemd, чтобы механизм контейнера Docker мог нормально запускаться.

Выполните некоторые операции по настройке виртуальной машины, такие как установка имени хоста (/etc/hostname), настройка разрешения хоста (/etc/hosts) и настройка файлов, связанных с systemd. Эти операции помогают гарантировать, что ядро ​​контейнера Docker сможет запуститься и правильно работать на виртуальной машине.

9. Подготовьте соответствующие базовые конфигурации среды, такие как Kubernetes и Docker.

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

10. Загрузите все необходимые файлы Kubernetes — kubelet, kubeadm и т. д.

Загрузите все соответствующие файлы Kubernetes на виртуальную машину, включая такие инструменты, как kubelet и kubeadm. Эти инструменты используются для управления и эксплуатации кластеров Kubernetes.

11. Извлеките образы Docker и запустите различные службы для разных пакетов, необходимых Kubernetes, таких как распределенная система хранения данных Etcd, планировщик планировщика, диспетчер контроллера контроллера и сервер Api.

Извлеките образы Docker на виртуальной машине для различных компонентов и служб, необходимых Kubernetes, и запустите эти службы. Это может включать в себя извлечение ключевых компонентов, таких как образ etcd (для распределенных систем хранения), запуск планировщика, диспетчера контроллеров и сервера API.

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

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

Adiós !

··································

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose