Criar DaemonSets do Kubernetes
Aplica-se ao: AKS no Azure Local 22H2, AKS no Windows Server
Este artigo descreve como criar e usar um DaemonSet do Kubernetes no AKS habilitado pelo Azure Arc para garantir que uma cópia de um pod esteja sempre disponível em cada nó de trabalho em um cluster. Você pode usar um DaemonSet para melhorar o desempenho do cluster, garantindo que um aplicativo seja executado em todos os nós de trabalho e para implantar pods que fazem manutenção e fornecem serviços de suporte para nós.
Visão geral de DaemonSets
Um DaemonSet é um objeto do Kubernetes que garante que uma cópia de um pod definido na configuração esteja sempre disponível em cada nó de trabalho em um cluster. Quando um novo nó é adicionado a um cluster, o DaemonSet aloca automaticamente o pod nesse nó.
Da mesma forma, quando um nó é excluído, o pod que está em execução no nó também é excluído e não é reagendado em outro nó (por exemplo, como acontece com ReplicaSets). Isso permite que você supere as limitações de agendamento do Kubernetes e certifique-se de que um aplicativo específico seja implantado em todos os nós do cluster.
DaemonSets pode melhorar o desempenho geral do cluster. Por exemplo, você pode usá-los para implantar pods para executar tarefas de manutenção e serviços de suporte para cada nó:
- Execute um daemon de coleta de logs, como
Fluentd
eLogstash
. - Execute um daemon de monitoramento de nó, como
Prometheus
. - Execute um daemon de armazenamento de cluster, como
glusterd
ouceph
.
Embora DaemonSets crie um pod em cada nó por padrão, você pode limitar o número de nós aceitáveis predefinindo o campo seletor de nó no arquivo YAML. O controlador DaemonSet só cria pods em nós que correspondem ao seletor de nó.
Normalmente, um DaemonSet implanta um tipo de daemon em todos os nós, mas é possível que vários DaemonSets controlem um tipo de daemon usando rótulos diferentes. Um rótulo do Kubernetes especifica regras de implantação com base nas características de nós individuais.
Para obter mais informações sobre como usar DaemonSets, consulte Kubernetes DaemonSets.
Criar um DaemonSet
Você descreve um DaemonSet usando um arquivo YAML e, em seguida, cria-o usando os kubectl create
comandos or kubectl apply
(por exemplo, kubectl create –f example-daemon.yaml
).
O exemplo a seguir descreve os recursos de um arquivo de configuração do DaemonSet usando uma imagem 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 exibir o estado atual do DaemonSet, use o kubectl describe
comando (por exemplo, kubectl describe daemonset example-daemon
).
Limitar DaemonSet a nós específicos
Por padrão, DaemonSets cria pods em todos os nós em um cluster, mas com seletores de nó, você pode configurá-los para criar pods somente em nós específicos. Se você quiser limitar um DaemonSet a nós específicos, use o kubectl label
comando.
Atualizar um DaemonSet
Você pode atualizar um DaemonSet usando o kubectl edit ds<NAME>
comando. No entanto, é recomendável editar o arquivo de configuração original e usar o kubectl apply
comando quando ele foi criado inicialmente. Depois de aplicar uma atualização, você pode exibir o status da atualização usando o kubectl rollout status ds <daemonset-name>
comando.
Excluir um DaemonSet
Para remover um DaemonSet, use o kubectl delete
comando (por exemplo, kubectl delete –f example-daemon.yaml -n monitoring
). Você deve ser cauteloso ao especificar o nome do arquivo DaemonSet, pois a exclusão de um DaemonSet limpa todos os pods implantados.