Введение
Kubernetes - это платформа оркестрации контейнеров, которая автоматизирует развертывание, масштабирование и управление контейнеризованными приложениями. В этом лабораторном занятии вы узнаете, как использовать команду cluster-info для получения информации о своем кластере Kubernetes. К концу лабораторной работы вы научитесь запускать кластер Kubernetes, получать важную информацию о кластере, исследовать внутренние компоненты и проверять подключение к API-серверу.
Это лабораторное занятие предназначено для начинающих, и предыдущий опыт работы с Kubernetes не требуется.
Запустить кластер Kubernetes
Для работы кластера Kubernetes требуется запущенная среда. В этом лабораторном занятии мы будем использовать Minikube - инструмент, который позволяет запускать кластер Kubernetes локально. Следуйте этим шагам:
Откройте терминал и убедитесь, что вы находитесь в директории
/home/labex/project:cd ~/projectЗапустите кластер Minikube:
minikube start- Minikube создает однодоменный (single-node) кластер Kubernetes.
- Этот процесс может занять несколько минут, в зависимости от вашей системы. Во время инициализации будут настроены различные компоненты Kubernetes.

Получить базовую информацию о кластере
После запуска Minikube используйте команду kubectl cluster-info для просмотра информации о кластере. Выполните следующую команду:
kubectl cluster-info
- URL-адрес API-сервера является основным конечным пунктом для взаимодействия с вашим кластером.
- CoreDNS обрабатывает обнаружение служб и разрешение DNS в рамках кластера.
Пример вывода:
Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
https://192.168.49.2:8443- это URL-адрес API-сервера Kubernetes. Именно сюда отправляются все командыkubectl.- Служба CoreDNS помогает Kubernetes разрешать доменные имена для служб и подов (pods).
Подробно изучить компоненты кластера
Для более глубокого понимания кластера и его внутренних компонентов используйте:
kubectl cluster-info dump
Эта команда предоставляет подробную информацию о ключевых компонентах:
- etcd: Ключ-значительное хранилище (key-value store) для всех данных кластера.
- kube-apiserver: Точка входа для запросов к API Kubernetes.
- kube-scheduler: Назначает рабочие нагрузки (поды, pods) на доступные узлы.
- kube-controller-manager: Поддерживает состояние кластера (например, обеспечивает запуск нужного количества реплик подов).
Пример вывода:
Эта команда генерирует обширный вывод, описывающий конфигурацию и состояние системных компонентов Kubernetes. Вы можете перенаправить вывод в файл для более удобного анализа:
kubectl cluster-info dump > cluster-details.txt
Это сохранит вывод в файл cluster-details.txt в текущей директории.
Просмотреть узлы в кластере
Узлы (nodes) - это машины, на которых запускаются рабочие нагрузки в Kubernetes. Чтобы вывести список узлов в вашем кластере, выполните:
kubectl get nodes
- Имя узла (например,
minikube) идентифицирует машину. - Статус (
Ready) указывает, что узел работает исправно и может запускать рабочие нагрузки. - В кластере Minikube узел выполняет функции как управляющего плана (control plane), так и рабочего узла (worker node).
Пример вывода:
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 5m v1.20.0
Проверить доступ к API - серверу
API-сервер является критическим компонентом управляющего плана (control plane) Kubernetes. Вы можете проверить его доступность, выполнив следующую команду:
curl $(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}') --insecure
- Эта команда получает URL-адрес API-сервера и выполняет простой запрос к нему.
- Флаг
--insecureпозволяет обойти проверку SSL-сертификата, что допустимо в данной локальной настройке.
Пример вывода:
Если API-сервер доступен, ответ должен выглядеть следующим образом:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
"reason": "Forbidden",
"details": {},
"code": 403
}
Этот ответ подтверждает, что API-сервер запущен, но доступ к нему запрещен из-за отсутствия аутентификации, что является ожидаемым поведением.
Резюме
В этом практическом занятии (lab) вы научились:
- Запускать кластер Kubernetes с помощью Minikube.
- Использовать команду
kubectl cluster-infoдля получения подробной информации о кластере. - Проводить глубокий анализ компонентов кластера с помощью команды
kubectl cluster-info dump. - Выводить список узлов (nodes) в кластере с использованием команды
kubectl get nodes. - Тестировать связь с API-сервером с помощью команды
curl.
Этот практический опыт дал вам основу для понимания и исследования кластеров Kubernetes. Эти команды являются важными инструментами для отладки и управления средами Kubernetes.
Следующие шаги:
- Исследовать поды (pods) и рабочие нагрузки в Kubernetes.
- Узнать, как создавать службы (services) для публикации приложений.
- Опробовать масштабирование рабочих нагрузок в кластере.
Продолжайте практиковаться и удачи в изучении!


