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
iLogstash
. - Uruchom demona monitorowania węzła, na przykład
Prometheus
. - Uruchom demona magazynu klastra, takiego jak
glusterd
lubceph
.
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: null
labels:
app: nginx
containers: null
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.