Criar DaemonSets do Kubernetes
Aplica-se a: AKS no Azure Stack HCI 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 todos os nós 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
DaemonSet é um objeto 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 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 verifique se um aplicativo específico está implantado em todos os nós dentro do cluster.
Os DaemonSets podem 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 em cada nó:
- Execute um daemon de coleção 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 os DaemonSets criem 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 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 DaemonSets do Kubernetes.
Criar um DaemonSet
Descreva um DaemonSet usando um arquivo YAML e, em seguida, crie-o usando os kubectl create
comandos ou kubectl apply
(por exemplo, kubectl create –f example-daemon.yaml
).
O exemplo a seguir descreve os recursos de um arquivo de configuração DaemonSet usando uma imagem 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
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, os DaemonSets criam 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, em seguida, usar o kubectl apply
comando quando ele foi criado inicialmente. Depois de aplicar uma atualização, você pode exibir a atualização status 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 ter cuidado ao especificar o nome do arquivo DaemonSet, pois excluir um DaemonSet limpa todos os pods implantados.
Próximas etapas
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de