You are viewing documentation for Kubernetes version: v1.25

Kubernetes v1.25 документация больше не поддерживается. Версия, которую вы сейчас просматриваете, является статической. Актуальную документацию вы можете найти последняя версия.

Изучение подов и узлов

Темы

  • Узнать про поды Kubernetes.
  • Узнать про узлы Kubernetes.
  • Диагностика развёрнутых приложений.

Поды Kubernetes

После того, как вы создали развёртывание в модуле 2, Kubernetes создал под (Pod), в котором был размещён экземпляр вашего приложения. Под — это абстрактный объект Kubernetes, представляющий собой группу из одного или нескольких контейнеров приложения (например, Docker или rkt) и совместно используемых ресурсов для этих контейнеров. Ресурсами могут быть:

  • Общее хранилище (тома)
  • Сеть (уникальный IP-адрес кластера)
  • Информация по выполнению каждого контейнера (версия образа контейнера или используемые номера портов)

Под представляет специфичный для приложения "логический хост" и может содержать разные контейнеры приложений, которые в общем и целом тесно связаны. Например, в поде может размещаться как контейнер с приложением на Node.js, так и другой контейнер, который использует данные от веб-сервера Node.js. Все контейнеры в поде имеют одни и те же IP-адрес и пространство порта, выполняющиеся в общем контексте на одном и том же узле.

Поды — неделимая единица в платформе Kubernetes. При создании развёртывания в Kubernetes, создаются поды с контейнерами внутри (в отличие от непосредственного создания контейнеров). Каждый Pod-объект связан с узлом, на котором он размещён, и остаётся там до окончания работы (согласно стратегии перезапуска) либо удаления. В случае неисправности узла такой же под будет распределён на другие доступные узлы в кластере.

Краткое содержание:

  • Поды
  • Узлы
  • Основные команды Kubectl

Под — группа из одного или нескольких контейнеров приложений (например, Docker или rkt), включающая общие используемые хранилище (тома), IP-адрес и информацию по их запуску.


Схема подов


Узлы

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

В каждом узле Kubernetes как минимум работает:

  • Kubelet — процесс, отвечающий за взаимодействие между мастером Kubernetes и узлом; он управляет подами и запущенными контейнерами на рабочей машине.
  • Среда выполнения контейнера (например, Docker или rkt), отвечающая за получение (загрузку) образа контейнера из реестра, распаковку контейнера и запуск приложения.

Контейнеры должны запускаться вместе только в пределах одного пода, если они тесно связаны и должны совместно использовать ресурсы (например, диск)


Схема узла


Диагностика с помощью kubectl

В модуле 2 вы использовали инструмент командной строки Kubectl. В этом (третьем) модуле вы продолжите его использовать, но для получения информации о развернутых приложениях и окружениях, в которых они работают. Наиболее распространенные операции выполняются с использованием следующих команд kubectl:

  • kubectl get — вывод списка ресурсов
  • kubectl describe — вывод подробной информации о ресурсе
  • kubectl logs — вывод логов контейнера в поде
  • kubectl exec — выполнение команды в контейнере пода

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

Теперь, когда вы познакомились поближе с компонентами кластера и командами, давайте изучим приложение.

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


Изменено March 12, 2024 at 8:26 AM PST: Merge pull request #45495 from steve-hardman/fix-1.25 (8eb33af)