Архитектура кластера Kubernetes

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

Введение

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

Компоненты управляющего слоя Kubernetes

Управляющий слой (control plane) отвечает за общее состояние кластера, а также за развертывание и масштабирование приложений. В состав управляющего слоя входят следующие компоненты:

  • kube-apiserver: Фронтенд для управляющего слоя Kubernetes, обрабатывающий все запросы на управление кластером.
  • etcd: Распределенное хранилище данных типа «ключ-значение», в котором хранятся все конфигурационные данные кластера.
  • kube-scheduler: Отвечает за назначение подов на конкретные узлы кластера.
  • kube-controller-manager: Запускает контроллеры, которые следят за состоянием различных объектов Kubernetes.

Задачи

Ваша задача — получить и вывести информацию о состоянии компонентов управляющего слоя, включая kube-apiserver, etcd, kube-scheduler и kube-controller-manager.

Требования

  • Используйте команду kubectl для получения статуса компонентов управляющего слоя.
  • Выполните команду в директории /home/labex/project.
  • Вывод должен содержать статус каждого компонента управляющего слоя.

Пример

Ниже приведен пример ожидаемого вывода при проверке статуса компонентов:

NAME                 STATUS    MESSAGE                         ERROR
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true","reason":""}
scheduler            Healthy   ok

Компоненты узла Kubernetes

Компоненты узла (node components) работают на каждом узле, обеспечивая запуск контейнеров и среду выполнения для приложений. К ним относятся:

  • kubelet: Агент Kubernetes, работающий на каждом узле; он следит за состоянием узла и управляет запуском контейнеров.
  • kube-proxy: Сетевой прокси-сервер Kubernetes, который отвечает за маршрутизацию трафика к соответствующим контейнерам.

Задачи

Выведите информацию об узлах, работающих в кластере Kubernetes, включая имя узла, его статус и другие важные детали.

Требования

  • Используйте команду kubectl для вывода списка узлов в кластере.
  • Выполните команду в директории /home/labex/project.
  • Вывод должен содержать подробную информацию о каждом узле кластера.

Пример

Пример ожидаемого вывода при просмотре списка узлов:

NAME       STATUS   ROLES           AGE     VERSION
minikube   Ready    control-plane   2m52s   v1.26.1

Поды в Kubernetes

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

Задачи

  1. Создайте файл с именем simple-pod.yaml с конфигурацией пода для контейнера Nginx.
  2. Разверните под с помощью соответствующей команды kubectl.
  3. Выведите информацию о подах, запущенных в кластере.

Требования

  • Создайте файл simple-pod.yaml в директории /home/labex/project с конфигурацией пода под названием simple-pod, использующего образ Nginx.
  • Используйте команду kubectl для создания пода из YAML-файла.
  • Используйте другую команду kubectl, чтобы просмотреть список запущенных подов.

Пример

Пример ожидаемого вывода при создании и просмотре подов:

pod/simple-pod created
NAME         READY   STATUS    RESTARTS   AGE
simple-pod   1/1     Running   0          29s

Сервисы в Kubernetes

Сервис (service) в Kubernetes — это абстракция, которая определяет логический набор подов и политику доступа к ним. Компоненты сервиса включают:

  • Service IP: Виртуальный IP-адрес, назначенный сервису.
  • Service Port: Номер порта, назначенный сервису.
  • Endpoint: Список IP-адресов и портов, которые указывают на конкретные поды, стоящие за сервисом.

Задачи

  1. Создайте файл nginx-service.yaml с конфигурацией сервиса для пода Nginx.
  2. Разверните сервис с помощью соответствующей команды kubectl.
  3. Выведите информацию о сервисах, запущенных в кластере.

Требования

  • Создайте файл nginx-service.yaml в директории /home/labex/project с конфигурацией сервиса nginx-service, который открывает порт 80.
  • Используйте команду kubectl для создания сервиса из YAML-файла.
  • Используйте команду kubectl, чтобы вывести список всех сервисов в кластере.

Пример

Пример ожидаемого вывода при просмотре сервисов:

NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes      ClusterIP   10.96.0.1      <none>        443/TCP   5m42s
nginx-service   ClusterIP   10.96.184.71   <none>        80/TCP    4s

Резюме

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

✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться