Создание наборов daemonSet для Kubernetes
Область применения: AKS в Azure Stack HCI 22H2, AKS в Windows Server
В этой статье описывается, как создать и использовать DaemonSet Kubernetes в AKS, включенном Azure Arc, чтобы гарантировать, что копия модуля pod всегда доступна на каждом рабочем узле в кластере. DaemonSet можно использовать для повышения производительности кластера, гарантируя, что приложение выполняется на всех рабочих узлах, а также для развертывания модулей pod, которые выполняют обслуживание и предоставляют службы поддержки для узлов.
Обзор daemonSets
DaemonSet — это объект Kubernetes, который гарантирует, что копия модуля pod, определенного в конфигурации, всегда будет доступна на каждом рабочем узле в кластере. При добавлении нового узла в кластер DaemonSet автоматически выделяет модуль pod на этом узле.
Аналогичным образом, при удалении узла модуль pod, работающий на узле, также удаляется и не переносится на другой узел (например, как это происходит с Наборами реплик). Это позволяет преодолеть ограничения планирования Kubernetes и убедиться, что конкретное приложение развернуто на всех узлах в кластере.
DaemonSets может повысить общую производительность кластера. Например, их можно использовать для развертывания модулей pod для выполнения задач обслуживания и поддержки на каждом узле:
- Запустите управляемую программу сбора журналов, например
Fluentd
иLogstash
. - Запустите управляемую программу мониторинга узла, например
Prometheus
. - Запустите управляемую программу хранилища кластера, например
glusterd
илиceph
.
Хотя DaemonSets по умолчанию создают pod на каждом узле, вы можете ограничить количество допустимых узлов, предварительно определив поле селектора узлов в файле YAML. Контроллер DaemonSet создает модули pod только на узлах, соответствующих селектору узлов.
Как правило, один набор DaemonSet развертывает один тип управляющей программы на всех узлах, но можно иметь несколько наборов DaemonSet для управления одним типом управляющей программы с помощью разных меток. Метка 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:
labels:
app: nginx
spec:
containers:
-name: nginx
image: nginx
Чтобы просмотреть текущее состояние DaemonSet, используйте kubectl describe
команду (например, kubectl describe daemonset example-daemon
).
Ограничение DaemonSet определенными узлами
По умолчанию DaemonSets создают модули pod на всех узлах в кластере, но с помощью селекторов узлов их можно настроить для создания модулей pod только на определенных узлах. Если вы хотите ограничить DaemonSet определенными узлами, используйте kubectl label
команду .
Обновление daemonSet
Вы можете обновить DaemonSet с помощью kubectl edit ds<NAME>
команды . Однако рекомендуется изменить исходный файл конфигурации, а затем использовать kubectl apply
команду при его создании. После применения обновления можно просмотреть состояние обновления с помощью kubectl rollout status ds <daemonset-name>
команды .
Удаление набора daemonSet
Чтобы удалить DaemonSet, используйте kubectl delete
команду (например, kubectl delete –f example-daemon.yaml -n monitoring
). При указании имени файла DaemonSet следует соблюдать осторожность, так как при удалении DaemonSet удаляются все развернутые модули pod.
Дальнейшие действия
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе:Отправить и просмотреть отзыв по