Введение
Kubernetes — это система оркестрации контейнеров. Она управляет планированием, запуском, публикацией и восстановлением контейнеризированных приложений в кластере.
Для взаимодействия с кластером Kubernetes обычно используют kubectl. Прежде чем развёртывать приложения, необходимо запустить кластер и настроить клиент так, чтобы он корректно подключался к этому кластеру.
В этой лабораторной работе вы выполните основные шаги для настройки доступа к кластеру Kubernetes. Вы будете использовать Minikube — инструмент, который запускает локальный одновузловой кластер Kubernetes. Он хорошо подходит для обучения и разработки.
Вы научитесь:
- Запускать локальный кластер Kubernetes.
- Проверять контекст
kubectl, чтобы убедиться, что команды отправляются в нужный кластер. - Получать основную информацию о кластере.
- Просматривать узлы кластера и проверять их состояние.
Запуск кластера
На этом шаге вы запустите локальный кластер Kubernetes с помощью Minikube. Minikube создаёт на вашем компьютере виртуальную машину или контейнер и развёртывает внутри него простой кластер. Это позволяет практиковаться с командами Kubernetes без использования облачного провайдера.
На этом этапе важно чётко различать три понятия. Кластер — это вся среда Kubernetes. Узел — это машина внутри кластера. Плоскость управления — часть Kubernetes, которая принимает запросы API и определяет, что должно произойти. Minikube объединяет эти компоненты в локальной учебной среде, чтобы вы могли сосредоточиться на концепциях Kubernetes, не занимаясь облачной инфраструктурой.
Сначала перейдите в каталог проекта:
cd ~/project
Теперь запустите кластер Minikube. Мы укажем драйвер docker, чтобы кластер работал внутри контейнера Docker, совместимого с этой лабораторной средой.
minikube start --driver=docker
Процесс может занять несколько минут: Minikube загрузит необходимые образы Kubernetes и запустит плоскость управления. В выводе будут сообщения о загрузке образов, запуске контейнера и настройке кластера.
После завершения команды проверьте состояние Minikube:
minikube status
В выводе должно быть указано, что host, kubelet и apiserver находятся в состоянии "Running".
Проверка контекста
На этом шаге вы проверите, настроен ли инструмент командной строки kubectl для взаимодействия с новым кластером Minikube.
Kubernetes использует файл конфигурации, обычно расположенный по адресу ~/.kube/config, для хранения сведений о доступе к кластерам. Этот файл может содержать данные для нескольких кластеров. Контекст определяет, в какой кластер kubectl отправляет команды. После запуска Minikube на предыдущем шаге конфигурация автоматически обновилась, а текущим контекстом стал minikube.
Это важно, потому что kubectl — всего лишь клиент. Кластер не «содержится» внутри kubectl. Инструмент считывает параметры подключения, сертификаты и выбранный контекст, а затем отправляет запросы на API-сервер Kubernetes. В реальной работе инженеры часто переключаются между кластерами разработки, тестирования и промышленной эксплуатации, поэтому проверка текущего контекста — это полезная мера безопасности, а не формальность.
Чтобы проверить текущий контекст, выполните команду:
kubectl config current-context
Вывод должен быть таким:
minikube
Если вы хотите просмотреть полные сведения о конфигурации, включая URL сервера кластера и сертификаты пользователя (они безопасно скрыты), выведите конфигурацию:
kubectl config view
Это подтверждает, что последующие команды kubectl будут выполняться в локальном кластере Minikube.
Проверка информации о кластере
На этом шаге вы получите основную информацию о кластере, чтобы проверить подключение и узнать, где работает плоскость управления Kubernetes.
Команда cluster-info позволяет быстро проверить, может ли kubectl успешно взаимодействовать с API-сервером.
Kubernetes — это система, управляемая через API. Почти каждое действие — от создания Pod до масштабирования Deployment — превращается в запрос API к плоскости управления. Поэтому проверка «Может ли мой клиент обратиться к API-серверу?» — одна из первых проверок состояния при исследовании проблем кластера.
Выполните команду:
kubectl cluster-info
Вывод будет похож на следующий:
Kubernetes control plane is running at https://127.0.0.1:32769
CoreDNS is running at https://127.0.0.1:32769/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
IP-адреса и порты могут отличаться, но главное сообщение — "Kubernetes control plane is running". Оно подтверждает, что ваш клиент (kubectl) успешно подключён к серверу (кластеру).
Просмотр узлов
На этом шаге вы проверите узлы кластера. Узел — это рабочая машина Kubernetes, физическая или виртуальная. Поскольку вы используете Minikube, должен отображаться один узел, выполняющий функции и плоскости управления, и рабочего узла.
В больших кластерах эти роли часто разделены. Узлы плоскости управления отвечают за оркестрацию, а рабочие узлы запускают приложения. Minikube объединяет обе роли в одном узле, чтобы упростить учебную среду, но вывод команды знакомит вас с теми же понятиями, которые используются в промышленных кластерах.
Чтобы вывести все узлы кластера, используйте команду get nodes:
kubectl get nodes
Вывод будет похож на следующий:
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 5m20s v1.26.1
Разберём столбцы:
- NAME: имя узла, в данном случае
minikube. - STATUS: состояние узла. Должно быть указано
Ready, что означает исправность узла и его готовность принимать рабочие нагрузки. - ROLES: роль узла, например
control-plane. - AGE: время работы узла.
- VERSION: версия Kubernetes, установленная на узле.
Если состояние указано как NotReady, обычно это означает, что узел ещё запускается или возникла проблема с сетью. В вашем случае состояние Ready, поэтому кластер полностью работоспособен.
Итоги
В этой лабораторной работе вы успешно настроили среду для доступа к кластеру Kubernetes. Вы:
- Запустили локальный кластер Kubernetes с помощью Minikube.
- Проверили, что контекст kubectl настроен для работы с локальным кластером.
- Получили информацию о кластере, чтобы подтвердить подключение к API-серверу.
- Просмотрели узлы, чтобы убедиться в готовности и исправности инфраструктуры кластера.
Это основные шаги, которые необходимо выполнить перед развёртыванием приложений в Kubernetes. Теперь у вас есть рабочая локальная среда для дальнейшего изучения Kubernetes.


