Tworzenie zestawów DaemonSet platformy Kubernetes

Dotyczy: usługa AKS w usłudze Azure Stack HCI 22H2, AKS w systemie Windows Server

W tym artykule opisano sposób tworzenia i używania zestawu DaemonSet platformy Kubernetes w usłudze AKS włączonego przez usługę Azure Arc w celu zapewnienia, że kopia zasobnika jest zawsze dostępna w każdym węźle procesu roboczego w klastrze. Za pomocą zestawu DaemonSet można zwiększyć wydajność klastra, upewniając się, że aplikacja działa na wszystkich węzłach procesu roboczego, oraz wdrażać zasobniki, które wykonują konserwację i zapewniają usługi pomocy technicznej dla węzłów.

Omówienie zestawów DaemonSet

DaemonSet to obiekt Kubernetes, który zapewnia, że kopia zasobnika zdefiniowanego w konfiguracji jest zawsze dostępna w każdym węźle procesu roboczego w klastrze. Po dodaniu nowego węzła do klastra zestaw DaemonSet automatycznie przydziela zasobnik w tym węźle.

Podobnie po usunięciu węzła zasobnik uruchomiony w węźle również zostanie usunięty i nie zostanie ponownie zaplanowany na innym węźle (na przykład w przypadku zestawów replik). Dzięki temu można przezwyciężyć ograniczenia planowania platformy Kubernetes i upewnić się, że określona aplikacja jest wdrażana we wszystkich węzłach w klastrze.

Zestawy DaemonSet mogą zwiększyć ogólną wydajność klastra. Można na przykład użyć ich do wdrażania zasobników w celu wykonywania zadań konserwacji i obsługi usług w każdym węźle:

  • Uruchom demona zbierania dzienników, na przykład Fluentd i Logstash.
  • Uruchom demona monitorowania węzła, na przykład Prometheus.
  • Uruchom demona magazynu klastra, na przykład glusterd lub ceph.

Mimo że zestawy DaemonSet domyślnie tworzą zasobnik na każdym węźle, można ograniczyć liczbę dopuszczalnych węzłów, wstępnie zdefiniowane pole selektora węzłów w pliku YAML. Kontroler DaemonSet tworzy tylko zasobniki w węzłach pasujących do selektora węzłów.

Zazwyczaj jeden daemonSet wdraża jeden typ demona we wszystkich węzłach, ale możliwe jest, że wiele zestawów DaemonSet kontroluje jeden typ demona przy użyciu różnych etykiet. Etykieta platformy Kubernetes określa reguły wdrażania na podstawie właściwości poszczególnych węzłów.

Aby uzyskać więcej informacji na temat używania zestawów DaemonSets, zobacz Kubernetes DaemonSets.

Tworzenie elementu DaemonSet

Opis zestawu DaemonSet można opisać przy użyciu pliku YAML, a następnie utworzyć go przy użyciu kubectl create poleceń lub kubectl apply (na przykład kubectl create –f example-daemon.yaml).

W poniższym przykładzie opisano funkcje pliku konfiguracji DaemonSet przy użyciu obrazu 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

Aby wyświetlić bieżący stan elementu DaemonSet, użyj kubectl describe polecenia (na przykład kubectl describe daemonset example-daemon).

Ograniczanie elementu DaemonSet do określonych węzłów

Domyślnie zestawy DaemonSets tworzą zasobniki we wszystkich węzłach w klastrze, ale przy użyciu selektorów węzłów można skonfigurować je do tworzenia zasobników tylko w określonych węzłach. Jeśli chcesz ograniczyć zestaw daemonSet do określonych węzłów, użyj kubectl label polecenia .

Aktualizowanie elementu DaemonSet

Zestaw DaemonSet można zaktualizować za pomocą kubectl edit ds<NAME> polecenia . Zaleca się jednak edytowanie oryginalnego pliku konfiguracji, a następnie użycie polecenia podczas jego początkowego kubectl apply tworzenia. Po zastosowaniu aktualizacji można wyświetlić stan aktualizacji za pomocą kubectl rollout status ds <daemonset-name> polecenia .

Usuwanie elementu DaemonSet

Aby usunąć element DaemonSet, użyj kubectl delete polecenia (na przykład kubectl delete –f example-daemon.yaml -n monitoring). Podczas określania nazwy pliku DaemonSet należy zachować ostrożność podczas usuwania elementu DaemonSet czyści wszystkie wdrożone zasobniki.

Następne kroki