Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: AKS на Windows Server
В этой статье описывается, как создать и использовать DaemonSet Kubernetes в AKS на Windows Server, чтобы гарантировать, что копия pod всегда доступна на каждом узле кластера. Для повышения производительности кластера можно использовать DaemonSet, чтобы гарантировать выполнение приложения на всех рабочих узлах, а также развертывать pod для выполнения обслуживания и предоставления служб поддержки для узлов.
Обзор DaemonSets
DaemonSet — это объект Kubernetes, который гарантирует, что копия модуля pod, определенного в конфигурации, всегда доступна на каждом рабочем узле в кластере. При добавлении нового узла в кластер DaemonSet автоматически размещает pod на этом узле.
Аналогичным образом, когда узел удаляется, pod, работающий на узле, также удаляется и не перепланируется на другом узле (например, как происходит с ReplicaSets). Это позволяет преодолеть ограничения планирования Kubernetes и убедиться, что конкретное приложение развернуто на всех узлах в кластере.
DaemonSets может повысить общую производительность кластера. Например, их можно использовать для развертывания модулей pod для выполнения задач обслуживания и служб поддержки на каждом узле:
- Запустите демон сбора журналов, такой как
Fluentd
иLogstash
. - Запустите демон мониторинга узла, например
Prometheus
. - Запустите демон хранения кластера, например
glusterd
илиceph
.
Хотя DaemonSets создает pod на каждом узле по умолчанию, можно ограничить количество допустимых узлов, предопредеив поле селектора узлов в файле YAML. Контроллер DaemonSet создает поды только на узлах, которые соответствуют селектору узлов.
Как правило, один daemonSet развертывает один тип управляющей программы на всех узлах, но можно управлять одним типом управляющей программы несколькими daemonSets с помощью разных меток. Метка Kubernetes определяет правила развертывания на основе характеристик отдельных узлов.
Дополнительные сведения об использовании DaemonSets см. в разделе Kubernetes DaemonSets.
Создайте DaemonSet
Вы описываете DaemonSet с помощью YAML-файла, а затем создаете его с помощью команд kubectl create
или kubectl apply
(например, kubectl create –f example-daemon.yaml
).
В следующем примере описываются функции файла конфигурации DaemonSet с помощью образа nginx:
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
app: nginx
name: example-daemon
spec:
template:
metadata: null
labels:
app: nginx
containers: null
name: nginx
image: nginx
Чтобы просмотреть текущее состояние daemonSet, используйте kubectl describe
команду (например, kubectl describe daemonset example-daemon
).
Ограничение daemonSet определенным узлам
По умолчанию DaemonSets создает модули pod на всех узлах кластера, но с селекторами узлов их можно настроить для создания модулей pod только в определенных узлах. Если вы хотите ограничить daemonSet определенными узлами, используйте kubectl label
команду.
Обновите DemonSet
С помощью kubectl edit ds<NAME>
команды можно обновить daemonSet. Однако рекомендуется изменить исходный файл конфигурации, а затем использовать команду kubectl apply
, как это было при его первоначальном создании. После применения обновления можно просмотреть состояние обновления с помощью kubectl rollout status ds <daemonset-name>
команды.
Удалить DaemonSet
Чтобы удалить daemonSet, используйте kubectl delete
команду (например, kubectl delete –f example-daemon.yaml -n monitoring
). При указании имени файла DaemonSet следует соблюдать осторожность, так как удаление daemonSet очищает все развернутые модули pod.