Локальный кластер: minikube и kind

Чтобы тренироваться, не нужен дата-центр — кластер поднимается на ноутбуке за пару минут.

minikube и kind — инструменты, которые поднимают полноценный (но одноузловой) кластер Kubernetes локально для обучения и разработки.

Для практики нам нужен живой кластер. Облачный заводить дорого и долго, поэтому используем локальный. Два популярных варианта: minikube (запускает кластер в виртуалке или контейнере) и kind — Kubernetes IN Docker (узлы кластера сами являются Docker-контейнерами, поэтому он легче и быстрее).

Что понадобится

  • kubectl — клиент командной строки для общения с любым кластером.
  • Docker — он у вас уже есть; на нём работает kind и драйвер docker у minikube.
  • minikube или kind — на выбор.

Вариант minikube

Запуск кластера одной командой:

minikube start --driver=docker

minikube скачает образы и поднимет одноузловой кластер. После старта он автоматически настроит kubectl на работу с ним.

Вариант kind

kind создаёт кластер ещё быстрее, прямо в Docker-контейнерах:

kind create cluster --name learning

Команда поднимет один узел-контейнер и пропишет доступ к нему в конфиг kubectl.

Проверяем, что кластер жив

Спросим у кластера список узлов:

kubectl get nodes

Вывод:

NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   40s   v1.30.0

Статус Ready означает, что узел готов принимать поды. На локальном кластере один узел совмещает роли control plane и worker.

Посмотрим состояние самого control plane:

kubectl cluster-info

Вывод:

Kubernetes control plane is running at https://127.0.0.1:6443
CoreDNS is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

Как убрать кластер

Когда наигрались, кластер легко удалить, освободив ресурсы:

minikube delete
# или для kind:
kind delete cluster --name learning
ИнструментГде запускает узлыОсобенность
minikubeVM или Dockerмного встроенных аддонов (ingress, dashboard)
kindDocker-контейнерыочень быстрый, удобен для CI и мульти-узловых кластеров

Итог

  • minikube и kind поднимают локальный кластер для практики.
  • kubectl — единый клиент для любого кластера, локального или облачного.
  • kubectl get nodes со статусом Ready подтверждает, что кластер работает.
Проверьте себя
1. Для чего нужны minikube и kind?
AСобирать Docker-образы
BПоднимать локальный кластер Kubernetes для обучения
CХранить секреты приложения
DПисать манифесты
2. Что означает расшифровка kind?
AKubernetes Internal Network Daemon
BKubernetes IN Docker
CKubernetes Image Node Distribution
DKernel Independent Node Deployment
3. Какая команда проверит, что узлы кластера готовы?
Akubectl logs
Bkubectl get nodes
Ckubectl delete
Dkubectl build
Поддержать проект