Kube/Pythonproduction course
Курс · RU99-sources.md

99. Источники, версии и состояние возможностей

Незнакомый термин? Откройте словарь Kubernetes и терминов курса.

Сведения об исследовании

  • Дата доступа и сверки: 2026-07-29.
  • Последняя стабильная версия Kubernetes на эту дату: v1.36.2, выпущена 2026-06-09.
  • Поддерживаемые основные ветки: 1.36, 1.35, 1.34.
  • Локальный инструмент: kind v0.32.0, выпущен 2026-06-02.
  • Выбранный образ узла: Kubernetes v1.36.1: kindest/node:v1.36.1@sha256:3489c7674813ba5d8b1a9977baea8a6e553784dab7b84759d1014dbd78f7ebd5.
  • Базовая версия клиента: kubectl v1.36.2; с API v1.36 совместима по правилу ±1 версия.
  • Подтверждённое окружение создания: Ubuntu 24.04.3 LTS, ядро 6.8.0-88-generic, x86_64. Инструменты Kubernetes и контейнеров отсутствовали, поэтому проверка в работающем кластере не заявлена.

Версии — снимок состояния, а не вечная рекомендация. Перед выполнением после этой даты снова откройте страницы выпусков, исправляющих версий и совместимости, примечания к выпуску kind и документацию целевого провайдера.

Таблица совместимости версий

По официальной политике на дату доступа:

ПараПоддерживаемое правило
Серверы API с HAсамая новая и старая версии различаются не более чем на одну ветку
kubeletсервер APIkubelet не новее; до 3 версий старее
kube-proxy → сервер APIне новее; до трёх версий старее, плюс ограничения локального kubelet
контроллер, scheduler, облачный контроллер → APIне новее; ожидается та же версия, допустима на одну версию старее
kubectl ↔ сервер APIклиент на одну версию старее, равен или на одну новее

Серверы API разных версий сужают допустимое пересечение. При обновлении плоскости управления нельзя пропускать промежуточные версии. Конкретный управляемый провайдер или инструмент развёртывания может разрешать меньше.

Первичный источник: правила совместимости версий (доступен/проверен 2026-07-29).

Матрица возможностей для выбранной версии

Стабильный статус/GA относится к API или возможности Kubernetes, но не гарантирует наличие реализации, дополнения или провайдера. «Внешнее» означает, что базовый кластер не устанавливает зависимость.

Возможность или APIСтатус в v1.36Решение курса или оговоркаПервичный источник
Deployment apps/v1GAосновной контроллер без состоянияDeployment
Job/CronJob batch/v1GA; CronJob v1 стабилен с 1.21периодическое выполнение по-прежнему имеет эксплуатационный контракт «не менее одного раза»CronJob
Нативный сайдкарстабилен с 1.33initContainers[*].restartPolicy: Always; только обзорСайдкар-контейнеры
Эфемерные контейнерыстабильны с 1.25диагностический подресурс, а не сайдкар приложенияЭфемерные контейнеры
Проверки startup/readiness/livenessбазовая стабильная возможностьразная семантика запуска, трафика и перезапускаЗадача по проверкам
Проверка gRPCстабильна с 1.27не используется в HTTP-лаборатории FastAPIЗадача по проверкам
Service v1GAвнешнему LB требуется реализацияService
EndpointSlice discovery.k8s.io/v1стабилен с 1.21основное доказательство состава целевых ресурсовEndpointSlice
Ingress networking.k8s.io/v1стабилен с 1.19, API заморожентребуется контроллер; рекомендован GatewayIngress
Gateway APIвнешние CRDs и контроллерне встроен в ядро; status и версия зависят от установленной реализацииКонцепция Gateway API
NetworkPolicy networking.k8s.io/v1API GAприменяется только совместимым сетевым дополнениемNetworkPolicy
Service .spec.externalIPsустарел в v1.36намеренно отсутствует из-за безопасности и переносимостиСтатья об устаревании v1.36
PV/PVC/StorageClassGAдрайвер, provisioner и режимы доступа зависят от провайдераПостоянные тома
ReadWriteOncePodстабилен с 1.29требуется поддержка CSI; отличается от RWOПостоянные тома
VolumeSnapshot snapshot.storage.k8s.io/v1API стабилен с 1.20внешние CRDs, контроллер и поддержка CSI; не доказывает резервную копиюСнимки томов
Дополнение тома gitRepoокончательно отключено в v1.36не используется; альтернативы — init и внешняя синхронизацияВыпуск v1.36
PDB policy/v1GAтолько добровольный evictionНарушения доступности
HPA autoscaling/v2GAAPI метрик и adapter внешние; требуются запросы ресурсовHPA
VPAвнешнее дополнение и CRDsтолько обзор компромиссов; установка не предполагаетсяВертикальное масштабирование Pods
Масштабирование узловбазовая концепция, внешние реализация и провайдеротсутствует в локальном kindМасштабирование узлов
Pod Security Admissionстабилен с 1.25метки namespace применяют PSS restrictedPod Security Admission
Pod Security Policyудалён в 1.25манифесты намеренно отсутствуютPodSecurityPolicy
Поле seccomp / RuntimeDefaultстабильно с 1.19явно задано в securityContext нагрузкиSecurityContext
Ограниченный проецируемый токен ServiceAccountсовременный стабильный механизмприложение отключает автомонтирование; проверка RBAC включает егоServiceAccount
ValidatingAdmissionPolicy admissionregistration.k8s.io/v1GA с 1.30пример CEL без latest ограничен областью и сначала проверяется на контрольной группеValidatingAdmissionPolicy
Ограничения топологического распределениястабильнымягкое распределение по hostname в базе; жёсткие правила требуют ёмкостиТопологическое распределение
Серверная декларативная проверкаGA в v1.36серверная проверка всё ещё не проверяет среду исполненияСтатья о возможности v1.36

Все ссылки в матрице открывались как официальные страницы проектов на дату доступа. Переключатели возможностей и матрицы провайдеров для реальной цели нужно перечитать перед применением.

Версии API, используемые в курсе

APIВиды ресурсовСтатус и причина
v1Namespace, Pod, Service, ConfigMap, Secret, ServiceAccount, PVC, LimitRange, ResourceQuotaбазовый GA
apps/v1DeploymentGA
batch/v1JobGA
networking.k8s.io/v1Ingress, NetworkPolicyGA; реализации внешние
policy/v1PodDisruptionBudgetGA
autoscaling/v2HorizontalPodAutoscalerGA
rbac.authorization.k8s.io/v1Role, RoleBindingGA
admissionregistration.k8s.io/v1ValidatingAdmissionPolicy/BindingGA в базовой версии
kustomize.config.k8s.io/v1beta1Kustomizationконфигурация клиента, а не обслуживаемый ресурс Kubernetes
kind.x-k8s.io/v1alpha4kind Clusterконфигурация инструмента kind, а не обслуживаемый ресурс Kubernetes

Манифесты курса намеренно не используют устаревшие extensions/v1beta1, apps/v1beta*, networking.k8s.io/v1beta1, policy/v1beta1, PSP, gitRepo, externalIPs или плавающий latest.

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

Все доступны и проверены 2026-07-29:

Обзор, API и архитектура

Рабочие нагрузки и конфигурация

Сеть и хранение данных

Планирование, доступность и безопасность

Эксплуатация, диагностика и жизненный цикл API

Первичные источники по инструментам и дополнениям

Решения и ограничения исследования

  1. Для нормативных заявлений об API, статусах и совместимости использованы только первичные документы Kubernetes и проектов.
  2. Публикации о выпусках используются для изменений v1.36, а не для общих концепций.
  3. Примеры используют API со стабильным статусом, доступные в v1.36. Экспериментальные возможности не нужны.
  4. kind выбран за воспроизводимый многоузловой процесс CI и загрузки образов; minikube — документированная альтернатива.
  5. cloud-provider-kind, Metrics Server, провайдер политик CNI, CSI, контроллеры Gateway/Ingress, системы наблюдаемости, GitOps и секретов всегда названы дополнениями, а не ядром.
  6. Доступность ссылок проверена на дату исследования, но внешние перенаправления и выпуски могут измениться.
  7. В окружении не было среды исполнения контейнеров и работающего кластера. Временный проверенный kubectl v1.36.2 использовался только для рендеринга Kustomize, а kubeconform — для автономной проверки схемы; ожидаемый вывод кластера основан на документированной семантике и должен быть подтверждён студентом.

Порядок актуализации

Перед новой группой или целевой средой:

1. Прочитать страницы стабильного выпуска и исправляющей версии; обновить точные версию и дату.
2. Прочитать руководство по совместимости и устареванию для текущей → целевой версии.
3. Выбрать выпуск kind и точный опубликованный digest образа узла.
4. Проверить правило kubectl ±1 версия и матрицы совместимости дополнений.
5. Повторно проверить все строки возможностей и обнаружение API в целевой среде.
6. Отрендерить все наложения; выполнить клиентский и серверный dry-run целевой версии.
7. Запустить одноразовые лабораторные в живом кластере и записать ограничения.
8. Проверить реестр ссылок; заменять источники только первичными.

Вернитесь к MAIN.