Kube/Pythonproduction course
Курс · RU98-glossary.md

98. Словарь Kubernetes и терминов курса

Этот словарь объясняет термины в том смысле, в котором они используются в курсе. В каждой главе первое значимое употребление термина ведёт сюда. Команды, имена полей YAML и буквальные значения оставлены без ссылок, чтобы примеры можно было копировать.

Если определение расходится с поведением конкретного кластера, проверяйте версию API и документацию реализации. Kubernetes — расширяемая платформа: наличие объекта API ещё не гарантирует, что в кластере установлен контроллер, который реализует его поведение.

Быстрый поиск

Используйте поиск браузера (Ctrl+F / Cmd+F) или перейдите к группе:

Кластер и его компоненты

Kubernetes

Kubernetes — открытая платформа для декларативного управления контейнерными нагрузками и сервисами. Она предоставляет API и циклы контроллеров; сборка образа, код приложения и инфраструктура хранения остаются отдельными слоями системы.

Cluster

Кластер Kubernetes — плоскость управления и один или несколько узлов, совместно исполняющих контейнерные нагрузки. Объекты отправляются в API кластера, а контроллеры и узловые агенты постепенно воплощают описанное состояние.

Control plane

Плоскость управления — компоненты, которые принимают API-запросы, хранят состояние, планируют Pods и запускают циклы контроллеров. Это не «главный сервер приложения»: пользовательская нагрузка обычно работает на узлах.

Node

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

Worker node

Worker node, рабочий узел — узел, предназначенный прежде всего для пользовательских нагрузок. На нём работают kubelet, среда исполнения контейнеров и сетевая плоскость данных.

kind

kind (Kubernetes IN Docker) — инструмент для локальных Kubernetes-кластеров. Он создаёт кластер, где узлы представлены контейнерами Docker, Podman или nerdctl; это удобно для обучения, разработки и CI, но не добавляет реальную вычислительную мощность отдельными машинами.

kind node

kind node — контейнер, который играет роль полноценного узла Kubernetes внутри кластера kind. Не путайте три уровня: контейнер kind node содержит узловые компоненты; kubelet на этом узле запускает Pods; Pods содержат контейнеры приложения.

API server

API server (kube-apiserver) — HTTP-точка входа Kubernetes API. Он проверяет запросы, выполняет аутентификацию, авторизацию и admission, а затем читает или сохраняет объекты; сам контейнеры не запускает.

etcd

etcd — согласованное key-value хранилище данных плоскости управления. В нём хранится состояние объектов Kubernetes, но не пользовательские данные приложения внутри его PVC или внешней базы данных.

Scheduler

Scheduler (kube-scheduler) — компонент плоскости управления, выбирающий подходящий Node для ещё не назначенного Pod. Он учитывает requests, ограничения, affinity, taints, topology и другие правила, но запуск контейнера выполняет kubelet.

Kubelet

kubelet — агент на каждом Node. Он наблюдает назначенные узлу PodSpecs и через CRI приводит контейнеры к требуемому состоянию, запускает probes и сообщает статус обратно в API.

Controller

Контроллер — цикл управления, который наблюдает объекты и действует, чтобы приблизить фактическое состояние к желаемому. Deployment, Job, Node и многие другие ресурсы имеют свои контроллеры.

Reconciliation

Reconciliation, согласование — один проход или непрерывный процесс сравнения желаемого и наблюдаемого состояний с последующим корректирующим действием. Асинхронность согласования объясняет, почему успешный apply ещё не означает готовую нагрузку.

Container runtime

Среда исполнения контейнеров — программа, которая загружает образы и создаёт, запускает и останавливает контейнеры. Kubelet обращается к ней через CRI; типичный пример в Kubernetes — containerd.

CRI

CRI, Container Runtime Interface — интерфейс между kubelet и средой исполнения контейнеров. Он позволяет Kubernetes работать с совместимыми runtime без встраивания их реализации в kubelet.

Клиент, API и объекты

kubectl

kubectl — командный клиент Kubernetes API. Он читает kubeconfig, выбирает контекст и отправляет запросы API server; это не сам кластер и не демон на Node.

kubeconfig

kubeconfig — конфигурационный файл с адресами кластеров, учётными данными и контекстами. Ошибка выбора kubeconfig может направить безопасную на вид команду в другой кластер.

Context

Context, контекст kubectl — именованная комбинация кластера, пользователя и Namespace по умолчанию в kubeconfig. Перед изменяющей или удаляющей командой проверяйте текущий контекст.

Namespace

Namespace — логическая область имён для namespaced-объектов одного кластера. Он помогает разделять команды, имена и политики, но сам по себе не создаёт полной изоляции сети, ресурсов или безопасности.

Resource

Resource, ресурс / объект API — запись с apiVersion, kind, metadata, а обычно также spec и status, доступная через Kubernetes API. Deployment, Pod, Service и Secret — разные kinds объектов.

Manifest

Манифест — локальное YAML- или JSON-представление желаемого объекта, передаваемое API. После применения источником текущего состояния становится объект в API, а файл остаётся декларацией и, желательно, версионируемым исходником.

Desired state

Желаемое состояние — то, что пользователь или контроллер описал в spec: например, три реплики Deployment. Наблюдаемое состояние — факты, которые компоненты видят сейчас и обычно отражают в status.

spec and status

spec описывает намерение, status — наблюдаемое состояние объекта. Запись в spec не синхронная команда процессу: контроллер позже попытается согласовать реальность и обновить status.

Label

Label, метка — короткая индексируемая пара ключ/значение на объекте. Метки используются для выборки и связывания объектов, поэтому изменение метки может изменить принадлежность Pod к Service или контроллеру.

Selector

Selector, селектор — условие выбора объектов по labels. Селектор Service определяет его endpoints, а селектор Deployment — Pods, которыми он владеет; ошибка селектора часто даёт корректный объект без рабочего трафика.

Annotation

Annotation, аннотация — неиндексируемые метаданные для инструментов, людей или контроллеров. Аннотация обычно не предназначена для выбора объектов.

OwnerReference

OwnerReference — ссылка зависимого объекта на владельца. Она задаёт граф владения для garbage collection и позволяет проследить цепочку Deployment → ReplicaSet → Pod.

Finalizer

Finalizer — строка в metadata, блокирующая окончательное удаление объекта, пока ответственный контроллер не выполнит очистку и не удалит finalizer. Объект с deletionTimestamp и finalizer уже удаляется, а не «игнорирует delete».

Declarative management

Декларативное управление описывает требуемый результат, а не последовательность ручных действий. Повторное применение той же декларации должно сходиться к тому же результату — это свойство называют идемпотентностью.

Pods и контроллеры нагрузок

Pod

Pod — минимальная развёртываемая и планируемая единица Kubernetes: один или несколько контейнеров с общей сетевой областью, IP и, при необходимости, томами. Pod заменяем; его не следует считать долговечной виртуальной машиной.

PodSpec

PodSpec — желаемая конфигурация Pod: контейнеры, образы, тома, ресурсы, проверки, правила планирования и безопасность. Kubelet воплощает PodSpec на назначенном Node.

Init container

Init container — контейнер, который должен успешно завершиться до запуска обычных контейнеров Pod. Он подходит для конечной подготовки, но не для постоянно работающего фонового процесса.

Sidecar

Sidecar — вспомогательный контейнер рядом с контейнером приложения в одном Pod. Он разделяет судьбу и ресурсы Pod; нативный sidecar задаётся как init container с политикой перезапуска Always.

Ephemeral container

Ephemeral container — диагностический контейнер, добавляемый к уже работающему Pod. Он предназначен для отладки, не задаётся как обычная часть приложения и не заменяет исправление образа или observability.

Deployment

Deployment — контроллер декларативного управления взаимозаменяемыми Pods, обычно stateless-нагрузкой. Он создаёт ReplicaSets и управляет rollout и rollback.

ReplicaSet

ReplicaSet — контроллер, поддерживающий заданное число Pods по селектору. Обычно им косвенно управляет Deployment; ручное редактирование дочернего ReplicaSet может быть перезаписано следующей операцией Deployment.

StatefulSet

StatefulSet — контроллер Pods со стабильными идентичностями, упорядоченными операциями и возможностью закреплять отдельный PVC за каждой репликой. Он не делает приложение автоматически реплицированным или отказоустойчивым.

DaemonSet

DaemonSet — контроллер, обеспечивающий Pod на каждом подходящем Node или выбранном наборе Nodes. Типичные применения — сетевой агент, сборщик логов или узловой мониторинг.

Job

Job — контроллер конечной работы: создаёт Pods и добивается требуемого числа успешных завершений. Для бесконечно работающего HTTP-сервиса обычно нужен Deployment, а не Job.

CronJob

CronJob — расписание, которое создаёт Jobs в заданные моменты. Оно наследует семантику конечной работы Job и требует продуманной политики конкуренции и истории.

Rollout

Rollout — переход контроллера нагрузки от одной ревизии Pod template к другой. Для Deployment это обычно постепенное создание нового ReplicaSet и уменьшение старого согласно maxSurge и maxUnavailable.

Rollback

Rollback — возврат к предыдущей рабочей ревизии конфигурации или образа. Откат Deployment не откатывает автоматически внешнюю схему данных, Secret или несовместимое состояние приложения.

Сеть и доступ к приложению

Service

Service — стабильная сетевая точка доступа к логическому набору backend Pods. Обычно Service выбирает Pods по labels, а актуальные адреса публикуются через EndpointSlices.

ClusterIP

ClusterIP — тип Service и его виртуальный IP, доступный внутри кластерной сети. Это не IP конкретного Pod и обычно не маршрут из внешнего интернета.

NodePort

NodePort — тип Service, открывающий одинаковый порт на Nodes и направляющий трафик к Service. Он полезен как строительный блок и в лаборатории, но редко даёт полноценный внешний балансировщик сам по себе.

LoadBalancer

LoadBalancer — тип Service, запрашивающий внешний балансировщик у реализации окружения. В локальном kind результат не появляется без дополнительного контроллера или специальной конфигурации.

EndpointSlice

EndpointSlice — объект с группой сетевых endpoints для Service. Он показывает, какие адреса и порты реально готовы принимать трафик, и потому важен для диагностики селекторов и readiness.

DNS and CoreDNS

DNS кластера даёт Service и Pod предсказуемые имена. CoreDNS — типичная реализация DNS-сервиса Kubernetes; успешный DNS-ответ ещё не доказывает наличие готового backend endpoint.

Ingress

Ingress — namespaced-объект правил HTTP/HTTPS-маршрутизации к Services. Сам объект ничего не маршрутизирует: в кластере нужен совместимый Ingress controller.

Ingress controller

Ingress controller — установленный компонент, который наблюдает Ingress и настраивает реальный proxy или load balancer. Его API-объекты и возможности зависят от реализации.

Gateway API

Gateway API — семейство Kubernetes API для ролей и маршрутизации трафика, например Gateway и HTTPRoute. Наличие CRDs не гарантирует работающий dataplane: требуется реализация controller.

CNI

CNI, Container Network Interface — спецификация и плагины, через которые runtime настраивает сеть контейнеров. В Kubernetes CNI-реализация обычно создаёт сеть Pod, а часто также реализует NetworkPolicy.

NetworkPolicy

NetworkPolicy — декларативное ограничение допустимого входящего и исходящего трафика Pods. Без реализации CNI, поддерживающей policy enforcement, валидный объект NetworkPolicy может не изменить трафик.

Конфигурация и хранилище

ConfigMap

ConfigMap — объект для неконфиденциальной конфигурации в виде пар ключ/значение или файлов. Обновление ConfigMap не всегда автоматически перезапускает Pods и не гарантирует, что приложение перечитает значение.

Secret

Secret — объект для небольших конфиденциальных данных. Значение data в YAML кодируется base64, а не шифруется этим кодированием; нужны RBAC, шифрование at rest, ограничение выдачи и безопасный процесс ротации.

Volume

Volume, том — каталог, доступный контейнерам Pod и имеющий жизненный цикл, зависящий от типа тома. Volume не обязательно постоянный: emptyDir исчезает вместе с Pod.

PV

PV, PersistentVolume — кластерный объект, представляющий подготовленное или динамически выделенное постоянное хранилище и его политику жизненного цикла.

PVC

PVC, PersistentVolumeClaim — namespaced-запрос рабочей нагрузки на хранилище с нужным размером и режимами доступа. Pod монтирует claim, а не выбирает конкретный диск напрямую.

StorageClass

StorageClass — класс хранилища и параметры provisioner. Он позволяет динамически создать PV для PVC и определяет детали, зависящие от инфраструктуры.

CSI

CSI, Container Storage Interface — стандартный интерфейс между оркестратором и драйвером хранилища. CSI-драйвер может реализовать provision, attach, mount, snapshot и другие операции, но набор возможностей зависит от драйвера.

Здоровье, ресурсы и планирование

Probe

Probe, проверка — периодическая проверка контейнера, выполняемая kubelet. Readiness, liveness и startup отвечают на разные вопросы и не должны быть одной и той же проверкой по привычке.

Readiness

Readiness probe отвечает: можно ли сейчас направлять трафик в контейнер. Неуспех убирает endpoint из готовых backend Service, но не обязан перезапускать контейнер.

Liveness

Liveness probe отвечает: нужно ли перезапустить зависший контейнер. Проверка внешней зависимости как liveness может создать каскадные перезапуски при общем отказе.

Startup

Startup probe даёт медленно запускающемуся приложению отдельное окно старта. Пока она не успешна, liveness и readiness не выполняются.

requests and limits

Requests — ресурсы, используемые scheduler для размещения и гарантий; limits — верхние ограничения, применяемые во время исполнения. CPU limit обычно приводит к throttling, а превышение memory limit может привести к OOM kill.

QoS

QoS class (Guaranteed, Burstable, BestEffort) выводится Kubernetes из requests и limits контейнеров Pod. Она влияет на приоритет вытеснения при дефиците ресурсов Node, но не является показателем качества приложения.

Affinity

Affinity / anti-affinity — правила предпочтительного или обязательного совместного либо раздельного размещения Pods относительно Nodes и других Pods. Жёсткие правила повышают предсказуемость, но могут оставить Pod в Pending.

Taint and toleration

Taint помечает Node как нежелательный для Pods; toleration разрешает Pod переносить конкретный taint. Toleration не выбирает Node — она лишь снимает один запрет планирования или вытеснения.

Eviction

Eviction, вытеснение — корректируемое прекращение Pod по решению scheduler, kubelet, администратора или API eviction. В отличие от обычного delete, API eviction учитывает PodDisruptionBudget, когда это применимо.

Drain

Drain — административная подготовка Node к обслуживанию: cordon запрещает новые назначения, затем подходящие Pods вытесняются. DaemonSet Pods и локальные данные требуют отдельных решений.

HPA

HPA, HorizontalPodAutoscaler — контроллер, меняющий число реплик workload по метрикам. Ему нужен источник метрик, а для вычисления процента использования CPU или памяти — корректные requests; HPA не увеличивает ёмкость Nodes сам по себе.

VPA

VPA, Vertical Pod Autoscaler — отдельный компонент, который рекомендует или меняет requests/limits контейнеров. Он не является встроенным активным контроллером в каждом кластере и может потребовать пересоздания Pods.

PDB

PDB, PodDisruptionBudget — политика, ограничивающая добровольные нарушения доступности группы Pods. Она не предотвращает отказ Node, падение процесса или все виды удаления и не создаёт дополнительные реплики.

Безопасность

ServiceAccount

ServiceAccount — namespaced-идентичность для процессов в Pods и автоматизации. Это не пользователь-человек; разрешения выдаются ей через RBAC.

RBAC

RBAC, Role-Based Access Control — авторизация действий над ресурсами по Roles, ClusterRoles и их bindings. Правило отвечает «кто может выполнить verb над каким resource», а не шифрует данные и не ограничивает сетевой трафик.

SecurityContext

SecurityContext — параметры безопасности Pod или контейнера: UID/GID, capabilities, seccomp, privilege escalation, read-only root filesystem и другие. Допустимость параметров проверяет admission, а применяет runtime и ядро Node.

PSS

PSS, Pod Security Standards — три профиля требований к Pod (Privileged, Baseline, Restricted). Встроенный Pod Security Admission может применять их к Namespace в режимах enforce, audit и warn.

Admission

Admission control — этап после аутентификации и авторизации, но до сохранения объекта. Встроенные плагины, policies и webhooks могут отклонить запрос или изменить объект.

Наблюдаемость и эксплуатация

Event

Event — ограниченная по времени запись Kubernetes о наблюдаемом событии: планировании, pull образа, неуспешной проверке и т. п. Events полезны как улики, но не являются долговечным audit log.

Log

Log, журнал — поток сообщений процесса или компонента. kubectl logs показывает контейнерные логи, но полнота, хранение и поиск требуют отдельной системы сбора.

Metric

Metric, метрика — числовое измерение во времени. Метрика объясняет тенденцию и позволяет строить alerts, но для причин обычно сопоставляется с Events, logs, traces и состоянием объектов.

SLI and SLO

SLI — измеримый индикатор работы сервиса, например доля успешных запросов. SLO — целевой уровень SLI за окно времени. SLO описывает пользовательский результат, а не просто состояние Ready у Pod.

Kustomize

Kustomize — декларативное преобразование Kubernetes manifests через bases, resources, patches и overlays без шаблонного языка. Результат нужно рендерить и проверять до применения.

Helm

Helm — менеджер пакетов Kubernetes. Chart состоит из шаблонов и значений, а release хранит историю установки; успешно отрендеренный chart ещё нужно проверить на совместимость с API и политиками кластера.

GitOps

GitOps — операционная модель, в которой версионируемое желаемое состояние хранится в Git, а автоматический контроллер согласует кластер с репозиторием. Это не просто запуск kubectl apply из CI: важны pull-модель, drift detection, аудит и безопасное управление секретами.

Первичные источники

Вернитесь к карте курса или продолжите с источниками и версионными оговорками.