Criar DaemonSets do Kubernetes
Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server
Este artigo descreve como criar e utilizar um Kubernetes DaemonSet no AKS ativado pelo Azure Arc para garantir que uma cópia de um pod está sempre disponível em todos os nós de trabalho num cluster. Pode utilizar um DaemonSet para melhorar o desempenho do cluster, garantindo que uma aplicação é executada em todos os nós de trabalho e para implementar pods que fazem manutenção e fornecem serviços de suporte para nós.
Descrição geral de DaemonSets
DaemonSet é um objeto do Kubernetes que garante que uma cópia de um pod definido na configuração está sempre disponível em todos os nós de trabalho num cluster. Quando um novo nó é adicionado a um cluster, o DaemonSet aloca automaticamente o pod nesse nó.
Da mesma forma, quando um nó é eliminado, o pod que está em execução no nó também é eliminado e não é reagendado noutro nó (por exemplo, como acontece com ReplicaSets). Isto permite-lhe ultrapassar as limitações de agendamento do Kubernetes e certificar-se de que uma aplicação específica é implementada em todos os nós dentro do cluster.
Os DaemonSets podem melhorar o desempenho geral do cluster. Por exemplo, pode utilizá-los para implementar pods para realizar tarefas de manutenção e suportar serviços em todos os nós:
- Execute um daemon de coleção de registos, como
Fluentd
eLogstash
. - Execute um daemon de monitorização de nós, como
Prometheus
. - Execute um daemon de armazenamento de clusters, como
glusterd
ouceph
.
Embora o DaemonSets crie um pod em cada nó por predefinição, pode limitar o número de nós aceitáveis ao pré-definir o campo do seletor de nós no ficheiro YAML. O controlador DaemonSet só cria pods em nós que correspondam ao seletor de nós.
Normalmente, um DaemonSet implementa um tipo de daemon em todos os nós, mas é possível que vários DaemonSets controlem um tipo de daemon com etiquetas diferentes. Uma etiqueta do Kubernetes especifica regras de implementação com base nas características dos nós individuais.
Para obter mais informações sobre como utilizar DaemonSets, veja Kubernetes DaemonSets.
Criar um DaemonSet
Pode descrever um DaemonSet com um ficheiro YAML e, em seguida, criá-lo com os kubectl create
comandos ou kubectl apply
(por exemplo, kubectl create –f example-daemon.yaml
).
O exemplo seguinte descreve as funcionalidades de um ficheiro de configuração DaemonSet com 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 ver o estado atual do DaemonSet, utilize o kubectl describe
comando (por exemplo, kubectl describe daemonset example-daemon
).
Limitar DaemonSet a nós específicos
Por predefinição, o DaemonSets cria pods em todos os nós de um cluster, mas com os seletores de nós, pode configurá-los para criar pods apenas em nós específicos. Se quiser limitar um DaemonSet a nós específicos, utilize o kubectl label
comando .
Atualizar um DaemonSet
Pode atualizar um DaemonSet com o kubectl edit ds<NAME>
comando . No entanto, recomenda-se que edite o ficheiro de configuração original e, em seguida, utilize o kubectl apply
comando quando foi criado inicialmente. Depois de aplicar uma atualização, pode ver o estado da atualização com o kubectl rollout status ds <daemonset-name>
comando .
Eliminar um DaemonSet
Para remover um DaemonSet, utilize o kubectl delete
comando (por exemplo, kubectl delete –f example-daemon.yaml -n monitoring
). Deve ter cuidado ao especificar o nome do ficheiro DaemonSet, uma vez que eliminar um DaemonSet limpa todos os pods que implementou.
Passos seguintes
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários