Editar

Partilhar via


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

Azure Kubernetes Service (AKS)

Se você está procurando executar o Kubernetes na borda e notar que as soluções gerenciadas não estão atendendo às suas necessidades, você pode estar explorando 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.

Nota

Este artigo não é uma comparação exaustiva; em vez disso, apresenta caminhos potenciais para a tomada de decisões com base em grandes qualificadores 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.

Baixar um arquivo Visio deste fluxograma

  • MicroK8s: Kubernetes "Low Ops" da Canonical

  • K3s: Distribuição Kubernetes certificada construída para IoT e edge computing

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

Nota

Low Ops refere-se à reduçã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 por Canonical

O MicroK8s é fornecido como um pacote de snap único que pode ser facilmente instalado em máquinas Linux com suporte a snaps. 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 MicroK8s. Ele é empacotado com seu próprio kubectl, e certos complementos podem ser ativados (por exemplo, helm, dns, ingress, metallb e muito mais). Vários nós, nós do Windows e cenários de alta disponibilidade (HA) também são suportados.

Considerações:

  • Existem vários requisitos de recursos, dependendo de onde você deseja executar o 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ó são suportadas para clusters MicroK8s com o 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 uma única máquina ou uma máquina diferente na mesma rede.

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

K3s por Rancher

K3s é uma distribuição leve do Kubernetes. 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 sejam suportadas.

  • Atualmente, os nós do Windows não são suportados para K3s.

  • O HA pode ser obtido com um banco de dados externo ou um banco de dados incorporado. K3s adicionou suporte total para etcd incorporado a partir do lançamento v1.19.5+k3s1.

KubeAdm

Kubeadm é uma instalação simples de baunilha do Kubernetes a partir do zero.

Considerações:

  • Requer 2 GiB (gibibytes) ou mais de RAM por máquina.

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

  • O nó do plano de controle deve ser uma máquina 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 aplica-se ao kubeadm e ao Kubernetes em geral. Verifique essa política para saber quais versões do Kubernetes e kubeadm são suportadas.

Gestão/Automação

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

O Ansible fornece uma maneira fácil de gerenciar recursos remotos e, portanto, é um excelente candidato para gerenciar e unir nós remotos a um cluster do Kubernetes. Tudo o que você precisa é do binário Ansible, rodando em uma máquina 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.

A 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 Kubernetes nativos. No momento da escrita, Metal3 usa kubeadm e, portanto, não suporta 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óximos passos

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