Udostępnij za pośrednictwem


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. Można użyć zestawu DaemonSet, aby zwiększyć wydajność klastra, zapewniając, że aplikacja działa na wszystkich węzłach procesu roboczego, oraz do wdrażania zasobników, 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 gwarantuje, ż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. Na przykład można ich użyć 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, takiego jak 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 na węzłach pasujących do selektora węzłów.

Zazwyczaj jeden demonSet wdraża jeden typ demona we wszystkich węzłach, ale istnieje możliwość kontrolowania jednego typu demona za pomocą różnych etykiet. Etykieta kubernetes określa reguły wdrażania na podstawie cech poszczególnych węzłów.

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

Tworzenie elementu DaemonSet

Opis elementu 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).

Ogranicz zestaw 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 je skonfigurować tak, aby tworzyć zasobniki 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żesz wyświetlić stan aktualizacji przy użyciu 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ść, ponieważ usunięcie elementu DaemonSet spowoduje wyczyszczenie wszystkich wdrożonych zasobników.

Następne kroki