10 вопросов
Kubernetes - оркестрация контейнеров. Pod, Deployment, StatefulSet, Service, Ingress, ConfigMap/Secret, liveness/readiness probes, HPA, Namespace, Helm. Стандарт для production-инфраструктуры.
Pod - минимальная единица в Kubernetes. Содержит один или несколько контейнеров, разделяющих сеть (localhost) и volumes. Обычно один Pod = один основной контейнер + sidecar'ы. Pod'ы эфемерны - могут быть убиты и пересозданы.
Подробнее →Namespace - логическая изоляция ресурсов: разные команды, среды (dev/staging/prod) в одном кластере. Ресурсы в разных namespace могут иметь одинаковые имена. Можно задавать квоты (ResourceQuota) и сетевые политики.
Подробнее →Helm - пакетный менеджер. Charts (пакеты) описывают набор ресурсов с шаблонизацией и переменными (values.yaml). helm install redis bitnami/redis установит Redis со всеми ресурсами. Упрощает повторное развёртывание.
Подробнее →Blue-green: две идентичные среды, переключение 100% трафика разом (быстрый откат). Canary: сначала 5% трафика на новую версию, потом 25%, 50%, 100% - постепенная проверка.
Подробнее →Deployment - для stateless (веб-серверы, API). Pod'ы взаимозаменяемы. StatefulSet - для stateful: постоянные имена (pod-0, pod-1), стабильные сетевые идентификаторы, персональные тома (PVC). Используется для PostgreSQL, Redis, Kafka.
Подробнее →ClusterIP - только внутри кластера (по умолчанию). NodePort - открывает порт на каждой ноде (30000-32767). LoadBalancer - создаёт внешний балансировщик (в облаке). На практике используют Ingress Controller для HTTP-трафика.
Подробнее →Liveness: 'жив ли контейнер?' - при неудаче перезапускает. Readiness: 'готов ли принимать трафик?' - при неудаче убирает из Service (не получает запросы, но не перезапускается). Startup probe - для приложений с долгим стартом.
Подробнее →ConfigMap - нечувствительные конфигурации (plain text). Secret - пароли, токены, ключи в base64 (но НЕ шифрует по умолчанию!). Для шифрования нужен EncryptionConfiguration или Vault. Secret'ы можно монтировать как файлы или env.
Подробнее →Ingress - набор правил для маршрутизации внешнего HTTP/HTTPS-трафика к сервисам кластера. Поддерживает path-based и host-based routing, TLS. Требует Ingress Controller (nginx-ingress, traefik). Пример: /api -> api-service, /web -> web-service.
Подробнее →HPA автоматически меняет количество реплик Pod'а на основе метрик (CPU, RAM, custom). При CPU > 70% - добавляет Pod'ы, при < 30% - убирает. VPA (Vertical) меняет ресурсы Pod. Cluster Autoscaler масштабирует ноды.
Подробнее →