Editar

Compartilhar via


Escolha uma opção de plataforma bare-metal de Kubernetes na borda

AKS (Serviço de Kubernetes do Azure)

Se estiver procurando executar o Kubernetes na borda e perceber que as soluções gerenciadas não estão atendendo às suas necessidades, talvez você queira explorar o bare-metal como uma opção. Este documento ajuda você a encontrar a melhor opção disponível para seu caso de uso ao configurar clusters Kubernetes na borda.

Observação

Este artigo não é uma comparação exaustiva; em vez disso, apresenta caminhos potenciais para a tomada de decisões com base em qualificadores principais entre opções comuns.

Árvore de decisão para Kubernetes bare-metal na borda

Faça referência à árvore a seguir ao decidir entre as opções apresentadas abaixo para Kubernetes bare-metal na borda.

Diagrama mostrando um fluxograma para decidir quais opções bare-metal usar.

Baixe um arquivo Visio desse fluxograma.

  • MicroK8s: Kubernetes "Low Ops" em conformidade da Canonical

  • K3s: distribuição Kubernetes certificada criada para IoT e computação de borda

  • kubeadm: ferramenta Kubernetes para criar clusters Kubernetes básicos; bom para a computação padrão (Linux/Windows)

Observação

Low Ops refere-se à diminuição do custo das operações quando algumas tarefas operacionais são abstraídas ou facilitadas, como atualizações automáticas ou atualizações simplificadas.

MicroK8s da Canonical

O MicroK8s é fornecido como um pacote de ajuste único que pode ser facilmente instalado em computadores Linux com suporte a ajuste. Instalações alternativas estão disponíveis para Windows, macOS e raspberry PI/ARM. Quando instalado, o MicroK8s cria um cluster de nó único, que pode ser gerenciado com as ferramentas do MicroK8s. Ele é empacotado com seu próprio kubectl, e determinados complementos podem ser habilitados (por exemplo, helm, dns, ingress, metallb e muito mais). Também há suporte para cenários de vários nós, nós do Windows e alta disponibilidade (HA).

Considerações:

  • Existem vários requisitos de recursos, dependendo de onde você deseja executar MicroK8s. Consulte os documentos do produto para obter os requisitos mínimos de recursos. Por exemplo:

    • Ubuntu: 4 GB de RAM, 20 GB de espaço em disco

    • Windows: 4 GB de RAM, 40 GB de espaço em disco

  • As cargas de trabalho do Windows só têm suporte para clusters MicroK8s com Calico CNI.

  • Cada nó em um cluster de vários nós MicroK8s requer seu próprio ambiente para trabalhar, seja uma VM ou contêiner separado em um único computador ou um computador diferente na mesma rede.

  • Dificuldades podem surgir ao executar MicroK8s em algum hardware ARM. Consulte os documentos para possíveis soluções.

K3s da Rancher

K3s é uma distribuição leve do Kubernetes. O K3s é implantado como um único binário e vem com ferramentas incorporadas, como kubectl e ctr, semelhante ao MicroK8s.

Considerações:

  • O binário é inferior a 100 MB, mas ainda há requisitos mínimos de recursos, dependendo do seu cenário. Consulte os documentos para obter os requisitos mínimos de recursos.

  • SQLite3 é o sistema de armazenamento padrão, embora outras opções tenham suporte.

  • Atualmente, não há suporte para nós do Windows para o K3s.

  • A HA pode ser obtida com um banco de dados externo ou um banco de dados inserido. O K3s adicionou suporte completo para etcd inserido a partir da versão v1.19.5+k3s1.

kubeadm

Kubeadm é uma instalação básica simples do Kubernetes do zero.

Considerações:

  • Requer 2 GiB (gibibytes) ou mais de RAM por computador.

  • Requer pelo menos 2 CPUs no nó do plano de controle.

  • O nó do plano de controle deve ser um computador executando um sistema operacional Linux compatível com deb/rpm.

  • A política de suporte de distorção de versão e versão do Kubernetes se aplica ao kubeadm e ao Kubernetes em geral. Verifique essa política para saber quais versões do Kubernetes e kubeadm têm suporte.

Gerenciamento/Automação

Quando se trata de automação e gerenciamento do provisionamento de clusters bare-metal, há algumas opções a serem exploradas: Ansible e Metal3.

O Ansible fornece uma maneira fácil de gerenciar recursos remotos e, portanto, é um candidato principal para gerenciar e unir nós remotos a um cluster Kubernetes. Tudo o que você precisa é do binário Ansible, em execução em um computador Linux, e SSH em máquinas remotas. Esse método fornece um mecanismo flexível para executar scripts arbitrários em máquinas de destino, o que significa que você pode usar o Ansible com qualquer uma das ferramentas mencionadas acima.

O Metal3 adota uma abordagem diferente para resolver esse problema utilizando conceitos semelhantes à API de Cluster. Você precisará instanciar um cluster efêmero para provisionar e gerenciar clusters bare-metal usando objetos nativos do Kubernetes. No momento em que este artigo foi escrito, o Metal3 usa kubeadm e, portanto, não dá suporte a distribuições Kubernetes leves.

Para gerenciamento além do provisionamento de cluster, considere aprender sobre clusters habilitados para Azure Arc para gerenciar seus clusters no Azure.

Próximas etapas

Para obter mais informações, consulte os seguintes artigos: