Creación de daemonSets de Kubernetes
Se aplica a: AKS en Azure Stack HCI 22H2, AKS en Windows Server
En este artículo se describe cómo crear y usar un daemonSet de Kubernetes en AKS habilitado por Azure Arc para asegurarse de que una copia de un pod siempre está disponible en todos los nodos de trabajo de un clúster. Puede usar un DaemonSet para mejorar el rendimiento del clúster asegurándose de que una aplicación se ejecuta en todos los nodos de trabajo y para implementar pods que realizan mantenimiento y proporcionan servicios de soporte técnico para los nodos.
Introducción a DaemonSets
Un DaemonSet es un objeto de Kubernetes que garantiza que una copia de un pod definido en la configuración esté siempre disponible en cada nodo de trabajo de un clúster. Cuando se agrega un nuevo nodo a un clúster, DaemonSet asigna automáticamente el pod en ese nodo.
De forma similar, cuando se elimina un nodo, el pod que se ejecuta en el nodo también se elimina y no se vuelve a programar en otro nodo (por ejemplo, como sucede con ReplicaSets). Esto le permite superar las limitaciones de programación de Kubernetes y asegurarse de que una aplicación específica se implementa en todos los nodos del clúster.
DaemonSet puede mejorar el rendimiento general del clúster. Por ejemplo, puede usarlos para implementar pods para realizar tareas de mantenimiento y servicios de soporte técnico en cada nodo:
- Ejecute un demonio de recopilación de registros, como
Fluentd
yLogstash
. - Ejecute un demonio de supervisión de nodos, como
Prometheus
. - Ejecute un demonio de almacenamiento de clúster, como
glusterd
oceph
.
Aunque DaemonSet crea un pod en cada nodo de forma predeterminada, puede limitar el número de nodos aceptables mediante la predefinición del campo selector de nodos en el archivo YAML. El controlador DaemonSet solo crea pods en nodos que coinciden con el selector de nodos.
Normalmente, DaemonSet implementa un tipo de demonio en todos los nodos, pero es posible que varios DaemonSet controlen un tipo de demonio mediante etiquetas diferentes. Una etiqueta de Kubernetes especifica las reglas de implementación basadas en las características de los nodos individuales.
Para obtener más información sobre cómo usar DaemonSets, consulte DaemonSets de Kubernetes.
Creación de un DaemonSet
Describa un DaemonSet mediante un archivo YAML y, a continuación, créelo mediante los comandos kubectl create
o kubectl apply
(por ejemplo, kubectl create –f example-daemon.yaml
).
En el ejemplo siguiente se describen las características de un archivo de configuración DaemonSet mediante una imagen 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
Para ver el estado actual de DaemonSet, use el comando kubectl describe
(por ejemplo, kubectl describe daemonset example-daemon
).
Limitar DaemonSet a nodos específicos
De forma predeterminada, DaemonSet crea pods en todos los nodos de un clúster, pero con los selectores de nodo, puede configurarlos para crear pods solo en nodos específicos. Si desea limitar un DaemonSet a nodos específicos, use el comando kubectl label
.
Actualización de un DaemonSet
Puede actualizar un DaemonSet mediante el comando kubectl edit ds<NAME>
. Sin embargo, se recomienda editar el archivo de configuración original y, a continuación, usar el kubectl apply
comando cuando se creó inicialmente. Después de aplicar una actualización, puede ver el estado de la actualización mediante el kubectl rollout status ds <daemonset-name>
comando .
Eliminación de un DaemonSet
Para eliminar un DaemonSet, use el comando kubectl delete
(por ejemplo, kubectl delete –f example-daemon.yaml -n monitoring
). Debe tener cuidado al especificar el nombre del archivo DaemonSet, ya que al eliminar un DaemonSet se limpian todos los pods implementados.