Construindo um cluster Raspberry Pi Kubernetes de 28 nós |

Construindo um cluster Raspberry Pi Kubernetes de 28 nós |

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


(Certifique-se de verificar o Plano de treinamento de ajuste de desempenho SQLpassion GRATUITO – você recebe um e-mail semanal com todo o conhecimento essencial que você precisa saber sobre ajuste de desempenho no SQL Server.)

Sou um grande fã e crente no Kubernetes. Já trabalho com o Kubernetes há cerca de 2 anos e sempre quis saber como operar um cluster Kubernetes maior. Portanto, no ano de 2018 comprei o equipamento necessário para construir um cluster Kubernetes em grande escala com 28 (!) Raspberry Pi’s! Infelizmente, nessa hora quebrei minha perna e depois disso nunca mais continuei a trabalhar naquele projeto legal. Mas isso mudou nas últimas semanas, como você pode ver:

Um cluster Raspberry Pi Kubernetes de 28 nós

Um cluster Raspberry Pi Kubernetes de 28 nós

Este é um cluster Kubernetes completo em execução em 28 (!) Dispositivos Raspberry Pi 3 B +. Nesta postagem do blog, quero dar uma visão geral sobre o hardware usado e como configuro o próprio cluster do Kubernetes.

O Hardware

Executar 28 Pi’s em um cluster parece uma ótima ideia. Mas assim que você pensa em mais detalhes sobre isso, muitas questões diferentes surgem:

  • Como você lida com o gerenciamento de energia?
  • E quanto à infraestrutura de rede necessária?
  • Como contar para minha esposa?

Vamos dar uma olhada nessas perguntas uma por uma. Os dispositivos Raspberry Pi podem ser alimentados por meio de um cabo Micro USB ou por meio de um chapéu PoE adicional (Power over Ethernet). Como eu queria manter os custos baixos, decidi usar apenas cabos Micro USB para alimentar os dispositivos Raspberry Pi individuais. Mas isso também significa que você terá que lidar com muitos cabos e que precisará de alguns carregadores USB para os cabos Micro USB. Se eu construísse esse projeto novamente, usaria a abordagem com os chapéus PoE porque você tem menos cabos para gerenciar.

Como você gerencia a infraestrutura de rede? Eu não queria comprar um switch de rede enorme com muitas portas, porque também queria meu Raspberry Pi Cluster o menor possível (naquela época, viajar pelo mundo ainda era permitido …). Decidi usar quatro switches de 8 portas e um switch de 5 portas para atender aos meus requisitos de rede. 7 Raspberry PIs são conectados a cada switch de 8 portas (7 x 4 = 28) e cada switch de 8 portas é finalmente conectado ao switch de 5 portas, que é finalmente conectado à minha rede doméstica.

E essa também é a razão pela qual meu cluster está atualmente limitado a 28 Raspberry PIs – estou sem portas de rede 😉 O cabo rosa na imagem a seguir é o uplink no switch de 5 portas em minha rede doméstica.

Porta de uplink de rede

Como contar para sua esposa? Bem, essa é uma história diferente …

Leia Também  [Video] Assista às consultas de gravação de Brent

Conectei fisicamente todos os 28 dispositivos Raspberry Pi por meio de espaçadores de 3 mm e montei tudo em uma base de prateleira 1U. Uma desvantagem dessa abordagem é que não consigo acessar diretamente os slots de cartão SD dos dispositivos Raspberry Pi. Portanto, tenho que removê-los da base da prateleira quando quero fazer o flash dos cartões SD com um sistema operacional diferente.

O Raspberry Pi montado

Aqui está a lista detalhada de BOM que comprei de volta no ano de 2018 para este projeto:

  • 28x Raspberry Pi 3 B +
  • Cartões SanDisk Ultra SD de 28x 16 GB
  • 28x cabos micro USB
  • 4 carregadores USB de 8 portas
  • 28 cabos Ethernet de 0,5 metros
  • 4 switches de rede Netgear GS108GE de 8 portas
  • 1x switch de rede de 5 portas Netgear GS105GE
  • 1x base de prateleira 1U

Instalando e configurando o sistema operacional

Agora você já tem uma ótima visão geral sobre a configuração do hardware em si. Vamos fazer agora algo útil com ele. Como já disse, acredito muito no Kubernetes e estou trabalhando muito com ele atualmente. Portanto, eu queria instalar um cluster Kubernetes nesta configuração de hardware.

Um problema que você enfrenta com o Kubernetes é que precisa de alguns recursos de RAM e CPU para os nós individuais. Mas como você sabe, no ano de 2018, o Raspberry Pi 3 B + era o modelo mais recente. E este tem apenas 1 GB de RAM, o que é quase nada se comparado à geração atual do Raspberry Pi 4 com até 8 (!) GB de RAM. Portanto, um cluster Kubernetes tradicional completo não funciona muito bem, porque a RAM disponível é um fator limitante.

Uma alternativa aqui é a instalação do k3s Kubernetes, que é uma distribuição leve do Kubernetes adequada para IoT e computação Edge. É fornecido pela Rancher e é certificado pela Cloud Native Computing Foundation (CNCF).

Na primeira etapa, tive que fazer o flash de 28 cartões SD com o Raspberry Pi Light OS. Eu usei aqui o Raspberry Pi Imager que tornou essa tarefa bastante fácil, espere o fato de que eu tive que fazer isso 28 vezes …

Piscando alguns cartões SD ...

Piscando alguns cartões SD ...

Além disso, também habilitei o servidor SSH depois que a imagem do sistema operacional foi exibida, para que eu possa usar os PIs do Raspberry em um cenário completamente sem cabeça: sem monitor, sem teclado, sem mouse.

Depois que os cartões SD foram preparados, eu os inseri no Raspberry PIs e iniciei o primeiro nó – que se tornará o nó mestre do Kubernetes. Uma limitação atual da distribuição do Kubernetes k3s é que você só pode ter 1 nó mestre, portanto, atualmente não há alta disponibilidade para os componentes do plano de controle …

Leia Também  Importing Performance Monitor data into SQL databases

Quando você liga o Raspberry Pi Light OS, ele aparecerá na sua rede com o nome do host raspberrypi.home. Como o servidor SSH já está em execução, você pode fazer SSH no PI com o usuário pi e a senha framboesa.

Na próxima etapa, atribuí um endereço IP estático ao Raspberry Pi. Você tem que fazer essas mudanças no arquivo /etc/dhcpcd.conf:

Definir um endereço IP estático

Ser capaz de instalar e usar o Docker como uma plataforma de contêiner (contêiner também funcionaria para k3s), é necessário habilitar os recursos do Container no kernel. Para isso você deve editar o arquivo /boot/cmdline.txt adicionando as seguintes configurações:

Habilitando os recursos do Container no Kernel

E finalmente, executei o programa de configuração raspi-config e fez as seguintes alterações:

  • Alterando a senha do pi do utilizador
  • Definir um nome de host
  • Mudando o fuso horário

raspi-config

E então eu reiniciei para aplicar essas mudanças.

Configurar o nó mestre do Kubernetes

Com todas essas mudanças em vigor, agora podemos finalmente instalar e configurar o nó mestre do Kubernetes. O nó mestre do Kubernetes é executado no Raspberry Pi com o nome do host rpi1 e o endereço IP 192.168.100.101. Em primeiro lugar, temos que instalar o Docker como plataforma de contêiner, executando o seguinte comando:

Instalando Docker

Após a conclusão da instalação, acabei de verificar a instalação do Docker com os seguintes comandos:

Verificando a instalação do Docker

E agora podemos iniciar a instalação do nó mestre Kubernetes k3s executando o seguinte comando:

Como você pode ver nessa linha de comando, você está especificando aqui o Docker como sua plataforma Container. E, finalmente, seu nó mestre do Kubernetes está instalado e funcionando. Você pode verificá-lo executando o seguinte comando:

sudo kubectl get nodes -o wide

O nó mestre do Kubernetes é implantado

Configurando os nós de trabalho do Kubernetes

Depois de instalar nosso nó mestre do Kubernetes, agora é hora de instalar e configurar os nós de trabalho individuais – no meu caso 27 … fiz aqui as mesmas preparações de sistema operacional do nó mestre. As únicas coisas que foram alteradas são o nome do host e o endereço IP. Na próxima etapa, temos que instalar o Docker novamente e verificar sua instalação:

Instalando Docker

E, finalmente, temos que instalar o Kubernetes e unir o novo nó de trabalho ao nó mestre. Para ser capaz de fazer isso, seu Nó de Trabalho precisa de um assim chamado Entrar no token, que pode ser recuperado no nó mestre já instalado. Você pode recuperar este token de junção executando o seguinte comando no nó mestre:

Com esse token de junção e o endereço IP do nó mestre do Kubernetes em suas mãos, agora você pode finalmente instalar k3s no nó de trabalho e uni-lo ao cluster do Kubernetes:

Unindo o nó de trabalho ao cluster do Kubernetes

Eu tive que executar essas etapas agora em todos os dispositivos Raspberry Pi restantes. E, finalmente, eu tinha um cluster Kubernetes totalmente funcional:

O cluster Kubernetes de 28 nós está instalado e funcionando!

Como já disse anteriormente, uma desvantagem (atual) do k3s é o fato de ele suportar apenas um único nó mestre. Portanto, este é o seu único ponto de falha. Esteja ciente disso! Talvez isso mude em uma versão posterior do k3s. Mas, atualmente, isso não me impede de usar este cluster para aprender como operar o Kubernetes em um ambiente de grande escala.

Quando você olha com mais detalhes na captura de tela anterior, talvez esteja perguntando por que meu cluster tem “apenas” 27 dispositivos Raspberry Pi? Bem, a resposta é bem fácil: Um Pi não funciona desde que o comprei, então a 28ª porta do switch está vazia no momento 😉

O vídeo curto a seguir mostra a sequência de inicialização do cluster Raspberry Pi Kubernetes – veja todas aquelas luzes extravagantes!

Resumo

Comprei todos esses dispositivos Raspberry Pi no ano de 2018, quando o Raspberry Pi 3 B + era o modelo mais recente. Mas agora já temos um Raspberry Pi 4 disponível, que suporta até 8 GB de RAM. Esse dispositivo seria um candidato ideal para executar um cluster Kubernetes “real” completo. Portanto, atualmente já estou pensando em comprar 4 desses PIs para construir um cluster adicional – talvez em combinação com um BitScope Cluster Blade. Mas, por favor: não diga isso à minha esposa …

Obrigado pelo seu tempo,

-Klaus



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br