Поделиться через


Создавать DaemonSets Kubernetes

Область применения: 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.

Следующие шаги