commit
6d0094f72f
|
|
@ -32,7 +32,7 @@ Kubernetes запускает ваши приложения, помещая ко
|
|||
1. Kubelet на узле саморегистрируется в плоскости управления
|
||||
2. Вы или другой пользователь вручную добавляете объект Узла
|
||||
|
||||
После того, как вы создадите объект Узла или kubelet на узле самозарегистируется,
|
||||
После того как вы создадите объект Узла или kubelet на узле самозарегистируется,
|
||||
плоскость управления проверяет, является ли новый объект Узла валидным (правильным). Например, если вы
|
||||
попробуете создать Узел при помощи следующего JSON манифеста:
|
||||
|
||||
|
|
@ -50,9 +50,9 @@ Kubernetes запускает ваши приложения, помещая ко
|
|||
```
|
||||
|
||||
Kubernetes создает внутри себя объект Узла (представление). Kubernetes проверяет,
|
||||
что kubelet зарегистрировался на API сервере, который совпадает с значением поля `metadata.name` Узла.
|
||||
что kubelet зарегистрировался на API сервере, который совпадает со значением поля `metadata.name` Узла.
|
||||
Если узел здоров (если все необходимые сервисы запущены),
|
||||
он имеет право на запуск Пода. В противном случае, этот узел игнорируется для любой активности кластера
|
||||
он имеет право на запуск Пода. В противном случае этот узел игнорируется для любой активности кластера
|
||||
до тех пор, пока он не станет здоровым.
|
||||
|
||||
{{< note >}}
|
||||
|
|
@ -62,13 +62,13 @@ Kubernetes сохраняет объект для невалидного Узл
|
|||
остановить проверку доступности узла.
|
||||
{{< /note >}}
|
||||
|
||||
Имя объекта Узла дожно быть валидным
|
||||
Имя объекта Узла должно быть валидным
|
||||
[именем поддомена DNS](/ru/docs/concepts/overview/working-with-objects/names#имена-поддоменов-dns).
|
||||
|
||||
### Саморегистрация Узлов
|
||||
|
||||
Когда kubelet флаг `--register-node` имеет значение _true_ (по умолчанию), то kubelet будет пытаться
|
||||
зарегистрировать себя на API сервере. Это наиболее предпочтительная модель, используемая большиством дистрибутивов.
|
||||
зарегистрировать себя на API сервере. Это наиболее предпочтительная модель, используемая большинством дистрибутивов.
|
||||
|
||||
Для саморегистрации kubelet запускается со следующими опциями:
|
||||
|
||||
|
|
@ -94,16 +94,16 @@ kubelet'ы имеют право только создавать/изменят
|
|||
Когда вы хотите создать объекты Узла вручную, установите kubelet флаг `--register-node=false`.
|
||||
|
||||
Вы можете изменять объекты Узла независимо от настройки `--register-node`.
|
||||
Например, вы можете установить метки на существующем Узле или пометить его неназначаемым.
|
||||
Например, вы можете установить метки на существующем Узле или пометить его не назначаемым.
|
||||
|
||||
Вы можете использовать метки на Узлах в сочетании с селекторами узла на Подах для управления планированием.
|
||||
Например, вы можете ограничить Под иметь право на запуск только на группе доступных узлов.
|
||||
Например, вы можете ограничить Под, иметь право на запуск только на группе доступных узлов.
|
||||
|
||||
Маркировка узла как неназначаемого предотвращает размещение планировщиком новых подов на этом Узле,
|
||||
Маркировка узла как не назначаемого предотвращает размещение планировщиком новых подов на этом Узле,
|
||||
но не влияет на существующие Поды на Узле. Это полезно в качестве
|
||||
подготовительного шага перед перезагрузкой узла или другим обслуживанием.
|
||||
|
||||
Чтобы отметить Узел неназначемым, выполните:
|
||||
Чтобы отметить Узел не назначаемым, выполните:
|
||||
|
||||
```shell
|
||||
kubectl cordon $NODENAME
|
||||
|
|
@ -111,7 +111,7 @@ kubectl cordon $NODENAME
|
|||
|
||||
{{< note >}}
|
||||
Поды, являющиеся частью {{< glossary_tooltip term_id="daemonset" >}} допускают
|
||||
запуск на неназначаемом Узле. DaemonSets обычно обеспечивает локальные сервисы узла,
|
||||
запуск на не назначаемом Узле. DaemonSets обычно обеспечивает локальные сервисы узла,
|
||||
которые должны запускаться на Узле, даже если узел вытесняется для запуска приложений.
|
||||
{{< /note >}}
|
||||
|
||||
|
|
@ -157,7 +157,7 @@ kubectl describe node <insert-node-name-here>
|
|||
{{< note >}}
|
||||
Если вы используете инструменты командной строки для вывода сведений об блокированном узле,
|
||||
то Условие включает `SchedulingDisabled`. `SchedulingDisabled` не является Условием в Kubernetes API;
|
||||
вместо этого блокированные узлы помечены как Неназначемые в их спецификации.
|
||||
вместо этого блокированные узлы помечены как Не назначаемые в их спецификации.
|
||||
{{< /note >}}
|
||||
|
||||
Состояние узла представлено в виде JSON объекта. Например, следующая структура описывает здоровый узел:
|
||||
|
|
@ -203,8 +203,8 @@ kubectl describe node <insert-node-name-here>
|
|||
Описывает ресурсы, доступные на узле: CPU, память и максимальное количество подов,
|
||||
которые могут быть запланированы на узле.
|
||||
|
||||
Поля в блоке capasity указывают общее количество ресурсов, которые есть на Узле.
|
||||
Блок allocatable указывает количество ресурсовна Узле,
|
||||
Поля в блоке capacity указывают общее количество ресурсов, которые есть на Узле.
|
||||
Блок allocatable указывает количество ресурсов на Узле,
|
||||
которые доступны для использования обычными Подами.
|
||||
|
||||
Вы можете прочитать больше о емкости и выделяемых ресурсах, изучая, как [зарезервировать вычислительные ресурсы](/docs/tasks/administer-cluster/reserve-compute-resources/#node-allocatable) на Узле.
|
||||
|
|
@ -212,7 +212,7 @@ kubectl describe node <insert-node-name-here>
|
|||
### Информация (Info)
|
||||
|
||||
Описывает общую информацию об узле, такую как версия ядра, версия Kubernetes (версии kubelet и kube-proxy), версия Docker (если используется) и название ОС.
|
||||
Эта информация соберается Kubelet'ом на узле.
|
||||
Эта информация собирается Kubelet'ом на узле.
|
||||
|
||||
### Контроллер узла
|
||||
|
||||
|
|
@ -247,16 +247,16 @@ ConditionUnknown, когда узел становится недоступны
|
|||
[Lease объект](/docs/reference/generated/kubernetes-api/{{< latest-version >}}/#lease-v1-coordination-k8s-io).
|
||||
Каждый узел имеет связанный с ним Lease объект в `kube-node-lease`
|
||||
{{< glossary_tooltip term_id="namespace" text="namespace">}}.
|
||||
Lease - это легковестный ресурс, который улучшает производительность
|
||||
Lease - это легковесный ресурс, который улучшает производительность
|
||||
сердцебиений узла при масштабировании кластера.
|
||||
|
||||
Kubelet отвечает за создание и обновление `NodeStatus` и Lease объекта.
|
||||
Kubelet отвечает за создание и обновление `NodeStatus` и Lease объекта.
|
||||
|
||||
- Kubelet обновляет `NodeStatus` либо когда происходит изменение статуса,
|
||||
либо если в течение настронного интервала обновления не было. По умолчанию
|
||||
либо если в течение настроенного интервала обновления не было. По умолчанию
|
||||
интервал для обновлений `NodeStatus` составляет 5 минут (намного больше,
|
||||
чем 40-секундный стандартный таймаут для недоступных узлов).
|
||||
- Kubelet созадет и затем обновляет свой Lease объект каждый 10 секунд
|
||||
- Kubelet создает и затем обновляет свой Lease объект каждый 10 секунд
|
||||
(интервал обновления по умолчанию). Lease обновления происходят независимо от
|
||||
`NodeStatus` обновлений. Если обновление Lease завершается неудачно,
|
||||
kubelet повторяет попытку с экспоненциальным откатом, начинающимся с 200 миллисекунд и ограниченным 7 секундами.
|
||||
|
|
@ -265,7 +265,7 @@ Kubelet отвечает за создание и обновление `NodeStat
|
|||
|
||||
В большинстве случаев контроллер узла ограничивает скорость выселения
|
||||
до `--node-eviction-rate` (по умолчанию 0,1) в секунду, что означает,
|
||||
что он не выселяет поды с узлов быстрее чем c 1 узела в 10 секунд.
|
||||
что он не выселяет поды с узлов быстрее чем с одного узла в 10 секунд.
|
||||
|
||||
Поведение выселения узла изменяется, когда узел в текущей зоне доступности
|
||||
становится нездоровым. Контроллер узла проверяет, какой процент узлов в зоне
|
||||
|
|
@ -288,26 +288,26 @@ Kubelet отвечает за создание и обновление `NodeStat
|
|||
выселяет поды с нормальной скоростью `--node-eviction-rate`. Крайний случай - когда все зоны
|
||||
полностью нездоровы (т.е. в кластере нет здоровых узлов). В таком случае
|
||||
контроллер узла предполагает, что существует некоторая проблема с подключением к мастеру,
|
||||
и останавеливает все выселения, пока какое-нибудь подключение не будет восстановлено.
|
||||
и останавливает все выселения, пока какое-нибудь подключение не будет восстановлено.
|
||||
|
||||
Контроллер узла также отвечает за выселение подов, запущенных на узлах с
|
||||
`NoExecute` ограничениями, за исключением тех подов, которые сопротивляются этим ограничениям.
|
||||
Контроллер узла так же добавляет {{< glossary_tooltip text="ограничения" term_id="taint" >}}
|
||||
соотвествующие проблемам узла, таким как узел недоступен или не готов. Это означает,
|
||||
соответствующие проблемам узла, таким как узел недоступен или не готов. Это означает,
|
||||
что планировщик не будет размещать поды на нездоровых узлах.
|
||||
|
||||
{{< caution >}}
|
||||
`kubectl cordon` помечает узел как 'неназначемый', что имеет побочный эфект от контроллера сервисов,
|
||||
`kubectl cordon` помечает узел как 'не назначаемый', что имеет побочный эффект от контроллера сервисов,
|
||||
удаляющего узел из любых списков целей LoadBalancer узла, на которые он ранее имел право,
|
||||
эффектино убирая входящий трафик балансировщика нагрузки с блокированного узла(ов).
|
||||
эффективно убирая входящий трафик балансировщика нагрузки с блокированного узла(ов).
|
||||
{{< /caution >}}
|
||||
|
||||
### Емкость узла
|
||||
|
||||
Объекты узла отслеживают информацию о емкости ресурсов узла (например,
|
||||
объем доступной памяти и количество CPU).
|
||||
Узлы, которые [самостоятельно зарегистировались](#саморегистрация-узлов) сообщают
|
||||
о свое емкости во время регистрации. Если вы [вручную](#ручное-администрирование-узла)
|
||||
Узлы, которые [самостоятельно зарегистрировались](#саморегистрация-узлов), сообщают
|
||||
о своей емкости во время регистрации. Если вы [вручную](#ручное-администрирование-узла)
|
||||
добавляете узел, то вам нужно задать информацию о емкости узла при его добавлении.
|
||||
|
||||
{{< glossary_tooltip text="Планировщик" term_id="kube-scheduler" >}} Kubernetes гарантирует,
|
||||
|
|
@ -318,7 +318,7 @@ Kubelet отвечает за создание и обновление `NodeStat
|
|||
а также исключает любые процессы, запущенные вне контроля kubelet.
|
||||
|
||||
{{< note >}}
|
||||
Если вы явно хотите зарезервировать ресурсы для процессов, не связанныз с Подами, смотрите раздел
|
||||
Если вы явно хотите зарезервировать ресурсы для процессов, не связанных с Подами, смотрите раздел
|
||||
[зарезервировать ресурсы для системных демонов](/docs/tasks/administer-cluster/reserve-compute-resources/#system-reserved).
|
||||
{{< /note >}}
|
||||
|
||||
|
|
@ -339,4 +339,4 @@ Kubelet отвечает за создание и обновление `NodeStat
|
|||
* Подробнее про [Узлы](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md#the-kubernetes-node)
|
||||
of the architecture design document.
|
||||
* Подробнее про [ограничения и допуски](/docs/concepts/configuration/taint-and-toleration/).
|
||||
* Подробнее про [автомаштабирование кластера](/docs/tasks/administer-cluster/cluster-management/#cluster-autoscaling).
|
||||
* Подробнее про [авто масштабирование кластера](/docs/tasks/administer-cluster/cluster-management/#cluster-autoscaling).
|
||||
|
|
|
|||
Loading…
Reference in New Issue