Практикум по поставке и эксплуатации приложений

Контейнеры и Kubernetes: от образа до обновления без простоя

После курса вы сможете обосновать ресурсы кластера, проверить поставку образа, разобрать отказ запуска и спланировать обновление с проверяемым откатом. Примеры, расчёты и ситуационный тест.

От основ к эксплуатации180 минут12 модулей20 вопросов
После курса

Что вы сможете сделать

  1. Разделить в заказе образ приложения, параметры запуска, ресурсы и постоянные данные.
  2. Проверить платформу, дайджест и происхождение сборки, затем испытать её получение на новом узле.
  3. Рассчитать запросы по каждому узлу и запас после отказа, отделив размещение от измеренной производительности.
  4. Найти причину Pending и различить запуск процесса, готовность адреса и успешную операцию приложения.
  5. Выбрать readiness, liveness и startup по нужному действию, без каскада лишних перезапусков.
  6. Посчитать временный запас обновления и подготовить откат образа, конфигурации и данных в согласованных границах.
Модуль 1 из 12

Что поставляют вместе с контейнером?

Заказчик получил образ и ожидает готовый сервис. Начните с границ поставки: процесс, его права, ресурсы узла и данные. Это четыре разных вопроса для приёмки.

  • Контейнер — управляемое окружение приложения, образ — его исходное содержимое. Среда выполнения создаёт окружение и запускает процесс. Наличие файла образа или идентификатора экземпляра ещё не означает, что приложение работает.

  • Пространства имён Linux разделяют видимость процессов, сети и подключённых файловых систем. Cgroup отдельно учитывает и ограничивает ресурсы. Если контейнер не видит соседей, это ещё не защищает общую память от исчерпания.

  • Обычные контейнеры Linux используют ядро узла. Список полномочий, доступ к устройствам и каталогам определяют границу изоляции. Корневая файловая система только для чтения не запрещает запись в отдельно подключённый каталог, если его режим подключения и права процесса её разрешают.

  • Данные подключённого хранилища имеют отдельный жизненный цикл. Удаление экземпляра не делает резервную копию и не задаёт сохранность файлов, которые приложение меняло внутри него. Эти условия включают в состав поставки отдельно.

Модуль 2 из 12

Какой образ действительно запускается?

Дилер меняет архитектуру серверов, а поставщик обещает «тот же контейнер». Проверьте, какой платформенный вариант скрывается за общим именем и из каких файлов он собран.

  • Манифест OCI связывает конфигурацию и упорядоченные слои. Слой хранит изменения файлов, конфигурация — сведения о платформе и настройки запуска. Проверка одного слоя не заменяет проверку образа целиком.

  • Индекс может объединять разные манифесты для amd64 и arm64. Общая метка не доказывает наличие нужного варианта. До замены архитектуры серверов проверьте платформу образа и работоспособность приложения на ней.

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

  • Удаление секрета в верхнем слое скрывает путь, но не очищает нижний. Проверяйте все сохраняемые слои. Если образ уже передали тем, кто не должен знать секрет, одной пересборки мало: раскрывшиеся учётные данные нужно отозвать и заменить.

  • OCI описывает форматы и запуск; это не оркестратор. Заявление о поддержке OCI не выбирает число копий, узел размещения и правила изоляции за заказчика.

Модуль 3 из 12

Сможет ли запасной сервер получить принятую сборку?

На старом узле приложение работает, но узел замены не может получить образ. Здесь нужно разделить имя выпуска, содержимое, доступ к реестру и происхождение сборки.

  • Метка, даже похожая на номер версии, может быть переназначена. Дайджест закрепляет точный объект. В принятом выпуске сохраняют и читаемую метку, и дайджест, а также ожидаемую аппаратную платформу.

  • Реестр распространяет содержимое, узел может хранить его в кэше. При IfNotPresent старый узел использует сохранённый образ, но новый зависит от реестра. При Always и ссылке с меткой узел обращается к реестру, чтобы определить соответствующий ей дайджест; уже сохранённые слои можно использовать повторно.

  • Дайджест не хранит образ. Если объекты удалены, одна ссылка не позволит запустить замену. Срок хранения текущего и откатного выпусков должен покрывать принятый план восстановления.

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

Модуль 4 из 12

Где заканчивается кластер и начинается приложение?

Заказ содержит три сервера Kubernetes. Это ещё не ответ на вопрос, сколько копий приложения переживёт отказ. Проследите работу от управляющих компонентов до конкретного Pod.

  • Управляющие компоненты хранят состояние и принимают решения, а службы узлов запускают назначенные Pod. Доступный API и работающая пользовательская операция проверяют разные части системы.

  • Планировщик выбирает узел, kubelet и среда выполнения запускают контейнеры. Успешное назначение ещё не проверяет получение образа и готовность приложения. Ошибку после назначения нужно искать на соответствующем этапе.

  • Контейнеры одного Pod размещаются вместе и разделяют сеть. Два контейнера внутри Pod не дают независимых копий сервиса. Для резервирования нужны отдельные Pod и проверка распределения по узлам.

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

Модуль 5 из 12

Почему удалённый Pod появился снова?

Инженер удаляет экземпляр, чтобы уменьшить нагрузку, а контроллер создаёт замену. Найдите объект, который задаёт цель: исправление должно менять намерение системы.

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

  • Deployment управляет ReplicaSet, а ReplicaSet — Pod. При неизменном целевом числе контроллер стремится создать новый Pod взамен удалённого. Для постоянного уменьшения числа экземпляров меняют цель Deployment.

  • Проверьте владельцев и селекторы. Несогласованные управляющие объекты с пересекающимися селекторами могут одновременно управлять одними и теми же Pod и перебивать решения друг друга. Ручная правка производного объекта не исправляет конфликт целей.

  • Если Pod не помещается ни на одном узле, повторная отправка того же описания не создаёт ресурсы. Отделите временный сбой от постоянного ограничения и измените именно его.

Модуль 6 из 12

Сколько CPU и памяти нужно заказать?

Приложение просит 1 CPU и 2 ГиБ на экземпляр, но лимиты выше. Перенесите эти числа в расчёт узлов, сохранив различие между запросом, фактическим расходом и пределом выполнения.

  • Request участвует в размещении, limit ограничивает выполнение, потребление измеряют под нагрузкой. Запрос не является жёстким потолком; лимиты сами по себе не подтверждают, что узел выдержит одновременный пик всех контейнеров.

  • 500m CPU — половина единицы CPU Kubernetes, не 500 МГц. В памяти 1Gi и 1G означают разные числа байтов. При расчёте по контейнерным requests складывайте запросы одновременно работающих контейнеров. Если посчитать только приложение и забыть постоянно работающий прокси или сборщик журналов, требования Pod будут занижены.

  • Вспомогательный контейнер в initContainers с restartPolicy=Always продолжает работать вместе с приложением: его запрос входит в общую сумму. На каждом шаге подготовки учитывают также уже запущенные вспомогательные контейнеры. Для каждого ресурса берут большее из пика подготовки и суммы длительной работы. Ресурсы уровня Pod и накладные расходы проверяют отдельно.

  • В Linux запрос CPU также влияет на относительный вес контейнера при конкуренции за процессор. Это не закрепление отдельного ядра. Снижая request ради плотности размещения, учитывайте и распределение процессорного времени под нагрузкой.

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

  • Для приложений используют Node Allocatable после системных резервов, а не всю установленную память. Проверьте requests в самом объекте, а не только в исходном файле: при заданном limit и отсутствии запроса Kubernetes может подставить его из лимита.

Модуль 7 из 12

Хватит ли кластера после отказа узла?

Учебная нагрузка: шесть Pod по 1 CPU и 2 ГиБ, без init-контейнеров, ресурсов уровня Pod и дополнительных накладных расходов. Три узла предоставляют приложениям по 4 CPU и 8 ГиБ. Нужно сохранить все шесть экземпляров после потери одного узла.

  • Шесть экземпляров требуют 6 CPU и 12 ГиБ. После отказа останутся 8 CPU и 16 ГиБ Node Allocatable. По три таких Pod помещаются на каждом из двух узлов: 3 CPU и 6 ГиБ. Это проверка запросов при отсутствии иных нагрузок, а не доказательство производительности на пике.

  • Всегда проверяйте размещение по узлам. Если на двух подходящих узлах осталось по 3 ГиБ для новых запросов, один Pod с запросом 4 ГиБ не поместится ни на одном. Общий свободный объём кластера не устраняет эту нехватку.

  • Жёсткое правило распределения может запретить использование свободного узла. Если допустимого узла нет, Pod остаётся без назначения. Мягкое правило даёт предпочтение, но допускает иной результат. Проверьте поведение после отказа вместе с метками размещения и физической независимостью узлов.

  • Потерянный Pod не мигрирует с прежним UID. Для управляемой нагрузки контроллер может создать новый Pod; он не наследует память старого процесса. Для временных данных старого Pod также нельзя предполагать автоматический перенос на другой узел.

  • Pending бывает и до назначения узла, и после него. Сначала проверьте, назначен ли узел, затем события и состояния контейнеров. Наращивание CPU не исправит ошибку получения образа у уже назначенного Pod.

Модуль 8 из 12

DNS отвечает. Почему приложение недоступно?

Проверка имени прошла, адрес Service есть, но клиент получает ошибку. Идите по пути запроса: выбор экземпляров, порт назначения, готовность и работа приложения.

  • Обычный ClusterIP Service даёт стабильный адрес, но не создаёт Pod. Имя DNS и адрес могут существовать при нуле готовых экземпляров. Проверка разрешения имени не заменяет проверку адресов приложения за службой.

  • Селектор выбирает Pod по меткам. Сопоставьте его с нужным приложением: ошибка может дать пустой набор или выбрать чужие экземпляры. Затем проверьте port и targetPort: при 80 и 8080 приложение должно слушать на стороне назначения порт 8080.

  • У одного Service может быть несколько EndpointSlice, например для разных семейств IP или наборов портов. Проверяйте все срезы службы: один объект может показывать только часть адресов, а число срезов не равно числу экземпляров приложения.

  • Когда readiness достигнет порога неудач, адрес может остаться в EndpointSlice со значением ready=false. Наличие адреса ещё не означает, что Service выбирает его для обычного трафика. Если включён publishNotReadyAddresses, служба допускает и неготовые адреса: это отдельная настройка доступа.

  • Running описывает состояние Pod и контейнеров, а не успешность операции пользователя. Даже готовность проверяет только выбранные условия. Завершите приёмку контрольной операцией приложения, а не чтением одного состояния Kubernetes.

  • При clusterIP=None виртуального адреса ClusterIP нет. Для такой службы используйте модель отдельных адресов приложения: ожидание общего виртуального адреса даст неверный диагноз.

Модуль 9 из 12

Когда убрать трафик, а когда перезапустить?

У каждой пробы должно быть нужное действие. Медленный ответ, долгий запуск и зависший процесс — разные ситуации; одна проверка внешней базы на все случаи способна усилить отказ.

  • Readiness меняет готовность к трафику и сама не перезапускает контейнер. После восстановления она может вернуть его в готовность без нового процесса. Проверка необязательной общей зависимости рискует одновременно убрать из трафика все копии.

  • Liveness после порога неудач заставляет kubelet завершить контейнер; следующий запуск зависит от политики перезапуска. Применяйте её там, где новый процесс способен устранить неисправность. Недоступная общая база данных от такого действия не восстановится.

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

  • Startup блокирует readiness и liveness до первого успеха. При failureThreshold=30 и periodSeconds=10 расчётный бюджет — около 300 секунд, а не точный таймер завершения. Успех через 20 секунд снимает блокировку остальных проб, не дожидаясь остатка этого бюджета.

  • Успех startup завершает начальную проверку, а после перезапуска контейнера она выполняется заново. Дальнейшую готовность и работоспособность проверяют readiness и liveness, если они настроены. Отсутствующую проверку приложения Kubernetes не придумывает; Running или успех liveness не подтверждает нужную пользовательскую операцию.

Модуль 10 из 12

Сколько места понадобится во время обновления?

У сервиса три копии. В плане выпуска стоят maxSurge=25% и maxUnavailable=25%. Переведите проценты в экземпляры и проверьте, где новая копия сможет запуститься до вывода старой.

  • Параметр maxSurge допускает дополнительные копии, maxUnavailable — сокращение числа доступных копий. Проценты округляют соответственно вверх и вниз. Для трёх копий и обоих значений 25% получится одна дополнительная и ноль недоступных. Новая копия должна поместиться до сокращения доступного числа старых; иначе обновление может остановиться.

  • Расчёт «три плюс одна» не является потолком фактического расхода ресурсов. Завершающиеся Pod могут ещё потреблять CPU и память после начала замены. Проверьте время завершения процессов и запас на этот переход.

  • Нельзя одновременно задать maxSurge=0 и maxUnavailable=0. Для замены нужна либо временная дополнительная копия, либо разрешённое сокращение доступного числа. Выбор сверяют с вместимостью узлов и требуемой мощностью приложения.

  • Readiness и minReadySeconds определяют разные условия. При положительном minReadySeconds новый Pod должен оставаться готовым без сбоев контейнеров заданное время, чтобы считаться доступным. Один быстрый успех пробы не доказывает выполнение этого периода.

  • Старые и новые копии могут работать одновременно. Проверьте совместимость обращений к общим данным, завершение текущих запросов и достаточность готовой мощности. Успешный RollingUpdate сам по себе не доказывает отсутствие простоя.

Модуль 11 из 12

Что вернётся при откате, а что останется новым?

Новая версия не прошла приёмку. Предыдущий образ известен, но этого мало: история, конфигурация и данные могли измениться независимо друг от друга.

  • Истечение progressDeadlineSeconds отмечает недостаточный ход обновления и само не запускает откат. В плане выпуска заранее определяют ответственного и действие по этому сигналу; ожидание не возвращает старую версию автоматически.

  • История хранится в ReplicaSet. Параметр revisionHistoryLimit задаёт число старых ReplicaSet, а не дни хранения. Проверьте наличие нужной ревизии и образов: частые выпуски могут вытеснить историю, а дайджест не удерживает содержимое в реестре.

  • Откат Deployment возвращает шаблон Pod. Он не восстанавливает внешнюю базу и отдельно изменённую конфигурацию. До выпуска проверьте, сможет ли старое приложение работать с данными после новой версии и какой порядок восстановления принят.

  • ConfigMap в переменных окружения не обновляет уже работающий процесс автоматически. Предусмотрите замену Pod и проверку значений. При передаче через том обновление может прийти с задержкой; подключение через subPath таких обновлений не получает.

  • Один неизменный дайджест не фиксирует всю систему: конфигурация, секреты, данные и внешние службы живут отдельно. Для принятого выпуска нужен согласованный набор этих условий, иначе прежний образ может дать другой результат.

Модуль 12 из 12

Как превратить кластер в проверяемую поставку?

Соберите итог для заказчика: комплект поставки и программа испытаний сервиса из шести копий на трёх узлах. Успех каждого испытания должен отвечать на конкретный вопрос, а оставшееся ограничение — быть записано.

  • Поставка образа: зафиксируйте платформенный вариант, дайджест и проверенное происхождение. Испытайте получение принятого и откатного выпусков на узле без кэша. Работа старого узла не подтверждает восстановимость через реестр.

  • Ресурсы и отказ: рассчитайте requests по подходящим узлам и после потери одного из них. Затем измерьте приложение под нагрузкой. Размещение по запросам не доказывает время ответа, а общий запас кластера не гарантирует место для конкретного Pod.

  • Доступность: проверьте выбранные адреса, готовность, поведение проб и результат операции клиента. При отказе узла подтвердите создание нового Pod и отдельно — доступность данных. Один статус Running не закрывает эти проверки.

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

Финишная прямая

Проверьте инженерное мышление

Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.

01Для двух выпусков с меткой release-7 сохранены записи реестра. Оба предназначены для amd64. Какие сведения прямо подтвердят одинаковое содержимое этого платформенного варианта?
02Получателям передали образ с секретным токеном в нижнем слое; права знать этот токен у них нет. Верхний слой удаляет файл, и итоговое дерево чистое. Как исправить поставку и закрыть утечку?
03Принятый образ работает на старом узле с IfNotPresent. Новый узел без кэша не может получить его. Какую проверку пропустили?
04Узел с управляемым Pod потерян. Контроллер уже создал замену на другом узле. Как описать её идентичность и память процесса?
05У обычного Linux-контейнера CPU request=500m, limit=1 CPU. На узле есть свободный ресурс. Как правильно трактовать настройки?
06На двух допустимых узлах осталось по 6 ГиБ для новых запросов. Для нового Pod задан запрос 7 ГиБ; в прежнем запуске приложение потребляло 2 ГиБ. Другие нагрузки сохраняются; освобождение ресурсов и изменение запроса исключены. Каков результат размещения?
07После отказа остались два узла с Node Allocatable по 6 CPU и 12 ГиБ. Каждый Pod запрашивает 2 CPU и 3 ГиБ. Иных нагрузок, накладных расходов и ограничений размещения нет. Сколько таких Pod максимально поместится по запросам?
08Pod находится в Pending, но поле узла уже заполнено. Приложение не запускается. Какую часть пути запуска исследовать первой?
09У Service заданы port=80 и targetPort=8080. Селектор выбирает нужный Pod; его приложение слушает только 8081. DNS разрешается. Какая ошибка конфигурации уже доказана этими сведениями?
10Процесс временно не может принимать новые запросы, но должен сохранить память и дождаться восстановления без перезапуска. Какой механизм подходит?
11При пике исправные, но медленные экземпляры не укладываются в таймаут liveness. После перезапусков очередь растёт. Какую проверку выполнить первой при пересмотре liveness?
12Startup имеет failureThreshold=30 и periodSeconds=10. Через 20 секунд проверка успешна. Что происходит с настроенными readiness и liveness?
13Deployment имеет пять копий, maxSurge=25% и maxUnavailable=25%. Какие целые значения получатся и как учесть завершающиеся Pod?
14Обновление не продвигается и превысило progressDeadlineSeconds. Внешняя система выпуска не выполняет дополнительных действий. Чего ждать от самого Deployment?
15ConfigMap обновили; контейнеры получили её значения через переменные окружения и продолжают работать. Нужно принять новые значения в управляемом выпуске. Что включить в процедуру?
16Новая версия изменила формат данных во внешней базе. Старый образ и ревизия Deployment сохранены. Какое испытание проверит готовность приложения после отката?
17Корневая файловая система контейнера настроена только для чтения. В /data подключён отдельный том для записи; права процесса разрешают запись в него. Может ли процесс изменять файлы в /data?
18Deployment поддерживает три копии. Инженер удаляет один Pod, но контроллер создаёт новый. Требуется постоянно оставить две копии. Как изменить цель системы?
19Для RollingUpdate предложили maxSurge=0 и maxUnavailable=0: «Не займём лишние ресурсы и не сократим доступность». Как оценить такую конфигурацию?
20Приёмка требует получить текущий и прежний образы на узле без кэша, выполнить операцию после отказа узла, обновиться и вернуться с работоспособным приложением. Первые три испытания успешны; возврат проверили только по созданию старых контейнеров. Какое испытание закрывает оставшийся критерий?
Проверяемая база

Источники курса

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

  • Первичная спецификация

    Open Container Initiative Runtime Specification

    Open Container Initiative · OCI Runtime Specification, November 2025

    Определяет подготовленный пакет контейнера, config.json, окружение процесса и операции жизненного цикла.

    Открыть первоисточник
  • Первичная спецификация

    Open Container Initiative Image Format Specification

    Open Container Initiative · OCI Image Specification, November 2025

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

    Открыть первоисточник
  • Официальная документация

    namespaces(7) — Linux manual page

    Linux man-pages project · Linux man-pages 6.18

    Описывает отдельные представления системных ресурсов в пространствах имён Linux и перечисляет изолируемые классы объектов.

    Открыть первоисточник
  • Официальная документация

    Guide to Security for Full Virtualization Technologies

    National Institute of Standards and Technology · NIST SP 800-125, final от января 2011 года

    Определяет full virtualization, VM/guest, hypervisor, bare-metal и hosted architectures, snapshot и isolation boundary.

    Открыть первоисточник
  • Официальная документация

    Control Group v2

    The Linux Kernel documentation · Linux kernel latest documentation

    Описывает иерархическое распределение ресурсов, контроллеры, ограничения, учёт потребления и пространство имён cgroup.

    Открыть первоисточник
  • Официальная документация

    Backup — CSRC Glossary

    National Institute of Standards and Technology · CSRC glossary по NIST SP 800-34 Rev. 1, проверено 29 августа 2026 года

    Определяет backup как копию files и programs, созданную для recovery.

    Открыть первоисточник
  • Официальная документация

    Security Guidelines for Storage Infrastructure

    National Institute of Standards and Technology · NIST SP 800-209, October 2020

    Разделяет backup, replication, immutability, continuous data protection и point-in-time copies; описывает synchronous и asynchronous replication.

    Открыть первоисточник
  • Официальная документация

    Removing sensitive data from a repository

    GitHub · справка GitHub Docs, страница открыта 6 сентября 2026 года

    Открыт редактором 6 сентября 2026 года, заголовок документа сверен. Описывает отзыв или замену раскрытых учётных данных и границы удаления секретов из истории Git. Связь с образами OCI — отдельный редакторский вывод.

    Открыть первоисточник
  • Официальная документация

    Rotate AWS Secrets Manager secrets

    Amazon Web Services · AWS Secrets Manager User Guide, проверено 30 августа 2026 года

    Определяет rotation как согласованное обновление secret value и credentials в database или target service.

    Открыть первоисточник
  • Официальная документация

    Lease, renew, and revoke

    HashiCorp · Vault documentation, проверено 30 августа 2026 года

    Разделяет TTL, renewal, expiration и immediate revocation для leased dynamic credentials.

    Открыть первоисточник
  • Официальная документация

    Kubernetes Components

    Kubernetes · Kubernetes current documentation

    Описывает управляющие компоненты, узлы, сервер API, планировщик, контроллеры, kubelet и среду выполнения контейнеров.

    Открыть первоисточник
  • Официальная документация

    Images

    Kubernetes · Kubernetes current documentation

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

    Открыть первоисточник
  • Первичная спецификация

    Open Container Initiative Distribution Specification

    Open Container Initiative · OCI Distribution Specification v1.1.1, страница спецификации открыта 6 сентября 2026 года

    Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Распространение манифестов и объектов по содержимому; метки репозитория.

    Открыть первоисточник
  • Первичная спецификация

    SLSA Build Track v1.2

    Supply-chain Levels for Software Artifacts · SLSA specification v1.2

    Определяет уровни SLSA Build, требования к подлинности сведений о происхождении и защите сборочной платформы.

    Открыть первоисточник
  • Официальная документация

    Kubernetes Scheduler

    Kubernetes · Kubernetes current documentation

    Описывает отбор допустимых узлов, оценку вариантов и назначение узла для ещё не размещённого Pod.

    Открыть первоисточник
  • Официальная документация

    Liveness, Readiness, and Startup Probes

    Kubernetes · Kubernetes current documentation

    Разделяет проверки готовности, работоспособности и запуска. Объясняет их действия и риск каскадного отказа при неверной настройке.

    Открыть первоисточник
  • Официальная документация

    Pods

    Kubernetes · Kubernetes current documentation

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

    Открыть первоисточник
  • Официальная документация

    Pod Topology Spread Constraints

    Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года

    Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Распределение Pod по меткам узлов и доменам отказа; жёсткое и мягкое требование.

    Открыть первоисточник
  • Официальная документация

    Controllers

    Kubernetes · Kubernetes current documentation

    Определяет управляющий цикл, целевое состояние и повторяющееся согласование наблюдаемого состояния с заданным.

    Открыть первоисточник
  • Официальная документация

    Pod Lifecycle

    Kubernetes · Kubernetes current documentation

    Описывает назначение узла, состояния Pod и контейнеров, перезапуски контейнеров и создание нового Pod с другим UID взамен прежнего.

    Открыть первоисточник
  • Официальная документация

    Deployments

    Kubernetes · Kubernetes current documentation

    Описывает управление ReplicaSet, стратегии обновления, параметры maxUnavailable и maxSurge, ход выпуска и историю для отката.

    Открыть первоисточник
  • Официальная документация

    Resource Management for Pods and Containers

    Kubernetes · Kubernetes current documentation

    Разделяет запросы и ограничения CPU и памяти: их учёт при размещении, распределение процессорного времени и применение пределов на узле.

    Открыть первоисточник
  • Официальная документация

    Sidecar Containers

    Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года

    Открыт редактором 6 сентября 2026 года, заголовок документа сверен. Вспомогательные контейнеры в initContainers с restartPolicy=Always, совместная работа и учёт запросов ресурсов при инициализации и работе приложения.

    Открыть первоисточник
  • Официальная документация

    Reserve Compute Resources for System Daemons

    Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года

    Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Node Allocatable: ресурсы для Pod после резервов системных служб и порогов вытеснения.

    Открыть первоисточник
  • Официальная документация

    Failover Clustering topologies

    Microsoft · Microsoft Learn для Windows Server 2016–2025, проверено 29 августа 2026 года

    Определяет fault domains и показывает границу single-rack HA, stretch cluster и multi-site DR.

    Открыть первоисточник
  • Официальная документация

    Service

    Kubernetes · Kubernetes current documentation

    Описывает сетевой доступ через Service к меняющемуся набору экземпляров приложения и связанные EndpointSlice.

    Открыть первоисточник
  • Официальная документация

    EndpointSlices

    Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года

    Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Адреса и условия ready/serving/terminating; несколько срезов одной службы.

    Открыть первоисточник
  • Официальная документация

    Configure Liveness, Readiness and Startup Probes

    Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года

    Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Пороги последовательных неудач, интервалы, таймауты и расчёт бюджета запуска.

    Открыть первоисточник
  • Официальная документация

    ConfigMaps

    Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года

    Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Внешняя конфигурация; различия переменных окружения, томов и подключений subPath.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие