Информация о кластере Kubernetes

KubernetesKubernetesBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Kubernetes - это платформа оркестрации контейнеров, которая автоматизирует развертывание, масштабирование и управление контейнеризованными приложениями. В этом лабораторном занятии вы узнаете, как использовать команду cluster-info для получения информации о своем кластере Kubernetes. К концу лабораторной работы вы научитесь запускать кластер Kubernetes, получать важную информацию о кластере, исследовать внутренние компоненты и проверять подключение к API-серверу.

Это лабораторное занятие предназначено для начинающих, и предыдущий опыт работы с Kubernetes не требуется.

Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 95%. Он получил 93% положительных отзывов от учащихся.

Запуск кластера Kubernetes

Для работы кластера Kubernetes требуется запущенная среда. В этом лабораторном занятии мы будем использовать Minikube - инструмент, который позволяет запускать кластер Kubernetes локально. Следуйте этим шагам:

  1. Откройте терминал и убедитесь, что вы находитесь в директории /home/labex/project:

    cd ~/project
  2. Запустите кластер Minikube:

    minikube start
    • Minikube создает однодоменный (single-node) кластер Kubernetes.
    • Этот процесс может занять несколько минут, в зависимости от вашей системы. Во время инициализации будут настроены различные компоненты Kubernetes.
Инициализация кластера Minikube

Получение базовой информации о кластере

После запуска 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) для публикации приложений.
  • Опробовать масштабирование рабочих нагрузок в кластере.

Продолжайте практиковаться и удачи в изучении!