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 e Logstash.
  • Execute um daemon de monitoramento de nó, como Prometheus.
  • Execute um daemon de armazenamento de cluster, como glusterd ou ceph.

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