Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+694новые вакансии за сутки·52 494вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 662
РезюмеAIПодготовкаСтатьи
ТарифыТарифы
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 391 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python6 244
  • Облачные технологии4 749
  • QA вакансии1 736
  • Android1 148
  • Инженер данных800
  • Продакт-менеджер321

Разработка

  • iOS1 092
  • Backend вакансии1 046
  • Fullstack вакансии453
  • AI вакансии391
  • Frontend вакансии376
  • Mobile вакансии27

По стеку

  • Go3 590
  • Java2 153
  • Kotlin942
  • Node.js767
  • Rust544
  • .NET496
  • PHP267
  • C++220
  • C#198

DevOps и инфраструктура

  • Kubernetes2 686
  • Linux-инфраструктура2 117
  • DevOps вакансии1 960
  • Terraform / IaC1 615
  • CI/CD871
  • Мониторинг и Observability742
  • SRE228
  • Кибербезопасность47

Аналитика и данные

  • Аналитик данных495
  • Data Scientist449
  • Бизнес-аналитик351
  • Системный аналитик54

Другие направления

  • Проджект-менеджер109
  • UI/UX дизайн70
  • Ручное тестирование14

По регионам

  • Вакансии в США23 835
  • Вакансии в Европе9 341
  • Работа в России3 283
  • Вакансии в Канаде2 140

По формату

  • Удалённые вакансии41 311
  • Релокация в США23 835
  • Гибридная работа4 058
  • Офисная работа2 949

По уровню

  • Senior вакансии20 396
  • Middle вакансии11 620
  • Junior вакансии3 665

Сейчас нанимают

Все компании
  • Rakuten188 вакансий
  • ASML163 вакансии
  • Wise139 вакансий
  • Grab134 вакансии
  • Infobip28 вакансий
  • Adyen23 вакансии
  • Darktrace17 вакансий
  • Spotify15 вакансий
  • Celonis11 вакансий
  • Razorpay9 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме KubernetesВсе вопросы
KubernetesMiddleТеория

Под в Pending. По какому алгоритму ты ищешь причину?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Алгоритм: kubectl describe pod (читаем Events) -> нехватка CPU/RAM на нодах -> taints без tolerations -> nodeSelector/affinity без подходящей ноды -> PVC в Pending -> ResourceQuota исчерпан -> логи kube-scheduler.

Шаг 1: описание пода — первый источник правды

# Самая важная команда
kubectl describe pod <pod-name> -n <namespace>

# Смотрим секцию Events в конце вывода:
# "0/5 nodes are available: 3 Insufficient cpu, 2 node(s) had taint"
# "0/5 nodes are available: 5 Insufficient memory"
# "persistentvolumeclaim not found"
# "didn't match pod anti-affinity rules"
# "no nodes available to schedule pods"

Алгоритм диагностики пода в состоянии Pending

Под остаётся в Pending, когда scheduler не может или не успел назначить его на ноду. Причин несколько: нехватка ресурсов, ограничения affinity/taints, отсутствующий PVC, лимиты namespace. Нужно последовательно исключать каждую.

Шаг 2: нехватка ресурсов

# Проверяем доступные ресурсы на нодах
kubectl describe nodes | grep -A 5 "Allocated resources"

# Или через top (если metrics-server установлен)
kubectl top nodes

# Смотрим requests/limits нашего пода
kubectl get pod <pod-name> -o yaml | grep -A 10 resources

# Итоговые requests по всем подам в namespace
kubectl get pods -n production -o json | \
  jq '.items[].spec.containers[].resources.requests'

Если pod запрашивает 4 CPU, а на всех нодах свободно по 2 — scheduler не найдёт подходящую ноду. Решение: уменьшить requests, добавить ноду или использовать Cluster Autoscaler.

Шаг 3: taints и tolerations

# Смотрим taints на нодах
kubectl describe nodes | grep -i taint
# или
kubectl get nodes -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints

# Типичные taints:
# node.kubernetes.io/not-ready:NoSchedule  — нода NotReady
# node-role.kubernetes.io/control-plane:NoSchedule  — master-нода
# spot=true:NoSchedule  — spot instance
# Если тест показал taint, добавляем toleration в спецификацию пода
spec:
  tolerations:
    - key: "spot"
      operator: "Equal"
      value: "true"
      effect: "NoSchedule"

Шаг 4: affinity и node selector

# Проверяем метки нод
kubectl get nodes --show-labels

# Если в поде есть nodeSelector — проверяем, есть ли нода с такой меткой
kubectl get nodes -l disktype=ssd

# Если пусто — нода с нужной меткой не существует или метка другая
# Пример проблемного nodeSelector
spec:
  nodeSelector:
    disktype: ssd      # нода с такой меткой должна существовать

# Добавить метку ноде
# kubectl label node <node-name> disktype=ssd

Шаг 5: PersistentVolumeClaim

# Если в поде есть volumes с PVC
kubectl get pvc -n <namespace>
# STATUS: Pending — PVC не может получить PV

kubectl describe pvc <pvc-name> -n <namespace>
# Events: "no persistent volumes available for this claim"
# или: "storageclass not found"

# Доступные StorageClass
kubectl get storageclass

# Если PVC ждёт WaitForFirstConsumer — это нормально,
# PV создастся только когда под назначен на ноду

Шаг 6: ResourceQuota в namespace

# Проверяем квоты
kubectl describe resourcequota -n <namespace>

# Если Used >= Hard — новые поды не запустятся
# Решение: увеличить квоту или освободить ресурсы

Шаг 7: логи scheduler

# Если describe pod не даёт ответа — смотрим scheduler
kubectl logs -n kube-system -l component=kube-scheduler --tail=100

# Или события кластера
kubectl get events -n <namespace> --field-selector reason=FailedScheduling
kubectl get events -A --sort-by=.lastTimestamp | tail -30

Шаг 8: проверка ImagePullBackOff как ложный Pending

# Иногда под переходит из Pending в Init или ContainerCreating и зависает
# Проверяем статус init-контейнеров
kubectl get pod <pod-name> -o jsonpath='{.status.initContainerStatuses}'

# Проблемы с образом
kubectl describe pod <pod-name> | grep -A 10 "Events"

Подводные камни

  • Requests != Limits путаница — scheduler смотрит только на requests, не на limits; под с requests: 0 всегда будет запланирован, даже если потом убьёт ноду.
  • Pod anti-affinity блокирует себя — requiredDuringSchedulingIgnoredDuringExecution anti-affinity с одинаковыми метками и топологией ноды сделает запуск более одного пода невозможным.
  • Cluster Autoscaler не масштабирует при taint — если все ноды в ASG имеют taint, а новый под не имеет toleration, autoscaler добавит ноду, но под всё равно не запустится.
  • PVC с ReadWriteOnce на двух нодах — если PV уже смонтирован на node-A, второй под с тем же PVC никогда не запустится на node-B; нужен ReadWriteMany или отдельные PVC.
  • Namespace ResourceQuota без LimitRange — если в namespace есть ResourceQuota, но нет LimitRange, поды без явных requests отклоняются admission webhook.
  • Scheduler extender недоступен — кастомный scheduler extender (например, от GPU оператора) при недоступности блокирует scheduling всех подов с соответствующими ресурсами.

Частые вопросы на собеседовании

  • Зачем нужны requests и limits для CPU и памяти? Что будет, если их не задать или задать только limits?
  • Что такое ServiceAccount, Role, ClusterRole, RoleBinding и ClusterRoleBinding? Как они связаны?
  • Сервис не доступен, хотя поды Running и Ready. Как найдёшь, где разрыв?
  • Что такое securityContext? Зачем нужны runAsNonRoot, readOnlyRootFilesystem и drop capabilities?

Типичные ошибки

  • Начинать с kubectl logs
  • Не читать Events
  • Путать Pending и CrashLoopBackOff

Что проверяет интервьюер

  • Имеет пошаговый алгоритм
  • Понимает FailedScheduling
  • Проверяет storage и quota

Как вы знаете этот вопрос?

Проверить себя по теме Kubernetes →

Источники

  • https://kubernetes.io/docs/tasks/debug/debug-application/debug-pods/
  • https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
  • https://kubernetes.io/docs/concepts/storage/persistent-volumes/
←Предыдущий вопросЧто такое PersistentVolume, PersistentVolumeClaim и StorageClass? Кто что создаёт?Следующий вопрос→На ноде статус NotReady. Какие шаги предпримешь?

Связанные темы

KubernetesDebuggingkubectlscheduling

Вакансии с этим навыком

Kubernetes вакансии
  • Web Application Engineer - EC First Party Development Department (ECFD)
  • Senior Software Engineer, Advertisement Optimization Group - Merchandising and Advertisement Department (MAD)
  • Software Engineer, Data Management Platform - Global Ad Technology Supervisory Department (GATD)
  • Senior Site Reliability Engineer, Booking Services Search Group - Search Department (SED)
  • DX Solution Lead Engineer - Backoffice Business Support Section, Business Support Development Department (BSD)