Skip to main content

Command Palette

Search for a command to run...

Configurando Rancher em um ARM

Published
3 min read
Configurando Rancher em um ARM
L

I'm a simple man... "I see coffee, I drink coffee"

Introdução

Graças ao canal do YouTube do Techno Tim eu fui exposto ao Rancher, o que pra mim foi sensacional. Vindo de um background de uma pessoa que gosta de Docker mas com ZERO conhecimento de Kubernetes -- além do fato de saber que ele existe e é um orquestrador de containers --, descobrir uma solução que reduz a complexidade de usar Kubernetes e ao mesmo tempo ser um norte para aprender ele, Rancher apareceu em um bom momento.

Dado esta prévia, eu queria colocar as minhas mãos em mexer no sistema mas rodar ele na minha Nanopi M4 -- que é, ao meu ver, a placa com o melhor custo/benefício nas ofertas que usam um chip ARM --; todavia a documentação do processo não foi fácil de se achar, procurei seguir este tutorial para configuração dele em um x86; problemas surgiram, os erros não eram claros e eu estava tendo o meu primeiro contato com a plataforma. Após algumas horas de caminhos frustrados, uma solução foi encontrada e os passos foram rascunhados neste Gist.

Passo A Passo

  1. Baixe Armbian -- usei o Bionic server
  2. Use um ISO burner para gravar o sistema em um SD Card -- usei o balenaEtcher
  3. SSH -- a senha é 1234 -- na sua Nanopi com:
    ssh -l root ip.da.sua.placa
    
  4. Crie um usuário e logue de novo desta vez nele e com a sua senha que criou no passo anterior
  5. Verifique e instale os updates:
    sudo apt-get update
    sudo apt-get upgrade -y
    
  6. Instale o Docker:
    curl https://get.docker.com | sh
    
  7. Siga os passos de adicionar o seu usário para rodar o Docker em modo de superuser sem precisar invocá-lo
  8. Inicialize o Rancher:
    docker run -d --restart=unless-stopped \
     --publish 80:80 \
     --publish 443:443 \
     --volume /opt/rancher:/var/lib/rancher \
     --volume /lib64:/lib64 \
     --volume /etc/cni/:/etc/cni/ \
     rancher/rancher:v2.4.5-rc7
    
  9. Abra o seu navegador e digite o ip da sua Nanopi e siga os passos de configurações do Rancher
  10. [Passo Extra] Sempre se lembre de quando for subir um serviço, de utilizar o Network Provider como Flannel: 84968426-d75a2100-b0ec-11ea-9bdc-2285ee2fa74b.png

Possíveis Correções Para Alguns Erros

Caso tenha problemas durante ou depois da configuração, você pode seguir estes seguintes passos:

  • Reiniciar sua placa
  • sudo rm -r /etc/kubernetes
  • sudo rm -r /var/lib/rancher

A Fazer

Apêndice

Recomendo configurar agora os seguintes serviços uma vez que já está com o Rancher rodando:

  1. Heimdall
  2. Pi-Hole -- particularmente não sei se funciona bem neste cenário, como utilizo pfBlocker não vi a necessidade de configurar, mas caso não tenha nenhum dos dois, este seria um começo

Referências

B

Parabéns pelo conteúdo do blog, Lucas! Encontrei o seu blog através do forum do Open Project e estou tentando seguir seus passos para instalar tanto o OP como o Nextcloud em um Raspberry Pi 4. Espero conseguir fazer algumas coisas interessantes com o Rancher ainda, como as citadas aqui no blog :)

Tenho muito pouca experiência na área de TI e acredito que por isso estou apanhando um pouco para configurar o Rancher.

Segui os passos listados acima e consegui instalar o docker e o Rancher aparentemente direitinho. Entretanto, quando tento criar um cluster, seguindo os passos do tutorial do próprio site do Rancher, obtenho o seguinte erro:

"Cluster must have at least one etcd plane host: please specify one or more etcd in cluster config"

Procurei na internet e tentei alguns procedimentos, inclusive apliquei os listados aqui, entretanto, nada resolveu até agora. Se tiver alguma ideia de como proceder eu te agradeço de antemão.

1
L

Desculpa pela mega demora, Bruno e obrigado pelo comentário. É maneiro saber que veio de lá :)

Primeira coisa que eu recomendaria fazer é não utilizar a versão 2.5 ou superior do Rancher uma vez que ela teve algumas modificações; caso já esteja em uma versão anterior, eu recomendaria olhar as opções de quando criar um novo cluster -- aquela parte que gera um 'docker run' gigantesco --, nesta tela tem três opções de valores e caso você esteja rodando o sistema em um ambiente único, seja ele virutalizado ou não, você terá que selecionar as três opções: control plane, etcd e service worker.

O que acontece é que isso é um pouco mais de Kubernetes (K8s) em si do do que do Rancher por si só. As três opções citadas são o "core" para o funcionamento de um cluster; elas ficam responsáveis pelas as tarefas dele e a organização do mesmo. Você pode ver isso da seguinte maneira: uma cozinha de um boteco tem os mesmos principios de uma cozinha de um restaurante chique, ambas elas tem que ter alguém que limpe a cozinha, selecione os ingredientes e pré-prepare eles e outro que cozinhe eles mesmo; a diferença é que em uma cozinha de restaurante geralmente você tem pelo menos mais de uma pessoa para cada tarefa, enquanto na do boteco uma pessoa geralmente faz tudo.

Essa abordagem ajuda bastante para casos de alta performance e escalamento de tarefas muito pontuais ou até mesmo que a demanda são altas como, por exemplo, um dia de Black Friday em um e-comerce a empresa que roda todo o sistema dela pode precisar de um "nó" -- as unidades de um cluster, que seriam as pessoas neste exemplo da cozinha -- de armazenamento de dados maior, que seria o etcd em um cluster.

No final de contas um cluster K8s é uma cozinha, é algo "único" mesmo que você tenha várias unidades de medida que formem ele.

No seu caso você vai ter que partir pra opção da cozinha de boteco, a sua Rasp vai fazer tudo para todos os seus "clientes" -- os serviços -- que vai rodar nela :)

1