|
| 1 | +--- |
| 2 | +title: "Рабочие нагрузки" |
| 3 | +weight: 55 |
| 4 | +description: > |
| 5 | + Поймите под, самый маленький развертываемый вычислительный объект в Kubernetes, и абстракции более высокого уровня, которые помогут вам их запускать. |
| 6 | +no_list: true |
| 7 | +card: |
| 8 | + title: Рабочие нагрузки и поды |
| 9 | + name: concepts |
| 10 | + weight: 60 |
| 11 | +--- |
| 12 | + |
| 13 | +Рабочая нагрузка — это приложение, работающее в Kubernetes. |
| 14 | +Независимо от того, представляет ли ваша рабочая нагрузка один компонент |
| 15 | +или несколько, которые работают вместе, в Kubernetes вы |
| 16 | +запускаете ее внутри набора [_подов_](/docs/concepts/workloads/pods). |
| 17 | +В Kubernetes под представляет собой набор работающих |
| 18 | +{{< glossary_tooltip text="контейнеров" term_id="container" >}} в кластере. |
| 19 | + |
| 20 | +Поды Kubernetes имеют определенный [жизненный цикл](/docs/concepts/workloads/pods/pod-lifecycle/). |
| 21 | +Например, если у вас запущен под в кластере, то критическая ошибка на |
| 22 | +{{< glossary_tooltip text="узле" term_id="node" >}}, где этот модуль работает, |
| 23 | +означает, что все поды на этом узле выходят из строя. Kubernetes считает |
| 24 | +этот уровень сбоя безвозвратным: потребуется создать новый под для восстановления, |
| 25 | +даже если узел позже станет работоспособным. |
| 26 | + |
| 27 | +Однако, чтобы значительно облегчить жизнь, не нужно |
| 28 | +непосредственно контролировать каждый под. Вместо этого можно использовать |
| 29 | +_ресурсы рабочей нагрузки_, которые управляют набором подов за вас. |
| 30 | +Эти ресурсы настраивают {{< glossary_tooltip term_id="controller" text="контроллеры" >}}, |
| 31 | +которые обеспечивают запуск нужного количества модулей |
| 32 | +нужного типа в соответствии с указанным вами состоянием. |
| 33 | + |
| 34 | +Kubernetes предоставляет несколько встроенных ресурсов для рабочих нагрузок: |
| 35 | + |
| 36 | +* Деплоймент ([Deployment](/docs/concepts/workloads/controllers/deployment/)) и [ReplicaSet](/docs/concepts/workloads/controllers/replicaset/) |
| 37 | + (замена устаревшего ресурса |
| 38 | + {{< glossary_tooltip text="ReplicationController" term_id="replication-controller" >}}). |
| 39 | + Deployment хорошо подходит для управления неизменными (stateless) приложениями |
| 40 | + в кластере, то есть для случаев, когда любой под |
| 41 | + в деплойменте не содержит изменяемых данных |
| 42 | + и может быть заменен при необходимости. |
| 43 | +* [StatefulSet](/docs/concepts/workloads/controllers/statefulset/) позволяет запускать один или несколько |
| 44 | + связанных подов, которые как-то отслеживают состояние (являются stateful). Например, если ваше |
| 45 | + приложение записывает постоянные данные, вы можете использовать StatefulSet, |
| 46 | + который сопоставляет каждый под с [PersistentVolume](/docs/concepts/storage/persistent-volumes/). |
| 47 | + Ваш код, работающий в подах этого StatefulSet, может |
| 48 | + копировать данные в другие поды в том же StatefulSet, |
| 49 | + чтобы повысить общую отказоустойчивость. |
| 50 | +* [DaemonSet](/docs/concepts/workloads/controllers/daemonset/) создает поды, которые |
| 51 | + предоставляют инструменты, которые доступны локально для узлов. |
| 52 | + Каждый раз, когда вы добавляете в кластер узел, |
| 53 | + соответствующий спецификации DaemonSet, |
| 54 | + слой управления (control plane) планирует (т.е. запускает) под с этим DaemonSet |
| 55 | + на новом узле. Каждый под в DaemonSet выполняет работу, |
| 56 | + аналогичную работе системного демона на классическом сервере Unix/POSIX. |
| 57 | + DaemonSet может иметь основополагающее значение для работы вашего кластера, |
| 58 | + например, в случае плагина для запуска сети кластера ([cluster networking](/ru/docs/concepts/cluster-administration/networking/#реализация-сетевой-модели-kubernetes)). |
| 59 | + Этот ресурс может помочь управлять узлом |
| 60 | + или предоставить дополнительные возможности |
| 61 | + для используемой контейнерной платформы. |
| 62 | +* [Job](/docs/concepts/workloads/controllers/job/) и |
| 63 | + [CronJob](/docs/concepts/workloads/controllers/cron-jobs/) предоставляют различные |
| 64 | + способы запуска задач, которые выполняются до своего завершения, а затем останавливаются. |
| 65 | + [Job](/docs/concepts/workloads/controllers/job/) используется для задачи, |
| 66 | + которая выполняется только один раз. Вы можете |
| 67 | + использовать [CronJob](/docs/concepts/workloads/controllers/cron-jobs/) для запуска этого же задания |
| 68 | + несколько раз по расписанию. |
| 69 | + |
| 70 | +В экосистеме вокруг проекта Kubernetes можно найти сторонние ресурсы для |
| 71 | +рабочих нагрузок, которые предоставляют дополнительные функции. Используя |
| 72 | +[custom resource definition](/docs/concepts/extend-kubernetes/api-extension/custom-resources/), |
| 73 | +вы можете добавить сторонний ресурс рабочей нагрузки, если нужно определенное |
| 74 | +поведение, не являющееся частью стандартного Kubernetes. Например, если вы хотите |
| 75 | +запустить группу подов для своего приложения, но хотите свернуть работу в случае, |
| 76 | +когда не все поды доступны (возможно, для распределенной задачи с высокой пропускной способностью), |
| 77 | +можно реализовать или установить расширение, которое предоставляет эту функцию. |
| 78 | + |
| 79 | +## {{% heading "whatsnext" %}} |
| 80 | + |
| 81 | +В дополнение к информации о каждом виде API для управления рабочей нагрузкой вы можете прочитать, |
| 82 | +как выполнять конкретные задачи: |
| 83 | + |
| 84 | +* [Запустите stateless-приложение, используя деплоймент](/docs/tasks/run-application/run-stateless-application-deployment/) |
| 85 | +* Запустите stateful-приложение в [единственном экземпляре](/docs/tasks/run-application/run-single-instance-stateful-application/) |
| 86 | + или в виде [множества реплик](/docs/tasks/run-application/run-replicated-stateful-application/) |
| 87 | +* [Запустите задачи автоматизации с помощью CronJob](/docs/tasks/job/automated-tasks-with-cron-jobs/) |
| 88 | + |
| 89 | +Чтобы узнать о механизмах отделения кода от конфигурации в Kubernetes, посетите |
| 90 | +раздел [Configuration](/docs/concepts/configuration/). |
| 91 | + |
| 92 | +Есть два вспомогательных концепта, которые дают представление о том, |
| 93 | +как Kubernetes управляет подами для приложений: |
| 94 | +* Сборщик мусора ([Garbage collection](/ru/docs/concepts/architecture/garbage-collection/)) вычищает объекты из |
| 95 | + вашего кластера после удаления _ресурса-владельца_. |
| 96 | +* Контроллер времени существования после завершения ([_time-to-live after finished_ controller](/docs/concepts/workloads/controllers/ttlafterfinished/)) |
| 97 | + удаляет задания (Jobs) по истечении определенного времени с момента их завершения. |
| 98 | + |
| 99 | +После запуска вашего приложения можно сделать его доступным в интернете |
| 100 | +с помощью [Service](/docs/concepts/services-networking/service/) или, только в случае веб-приложения, |
| 101 | +используя [Ingress](/docs/concepts/services-networking/ingress). |
| 102 | + |
0 commit comments