Instalando Cluster RKE com Rancher - Kubernetes

Filipe Alves
Linux & World Open-Source
4 min readOct 24, 2020

Instaling a cluster RKE with Rancher - K8s

O que é Rancher?

É uma uma plataforma OpenSource e gratuita para gerenciamento de infraestrutura baseada em contêineres (Docker, Kubernetes), assim como efetuar deploy de aplicações locais ou até mesmo em Cloud Providers (AWS, GCP, Azure)

Principais funcionalidades do Rancher

  • Alta Disponibilidade
  • Interface de gerenciamento
  • Multi ambientes
  • Multi orquestradores (Kubernetes, Swarm, Cattle…)
  • Integração com principais clouds
  • Catálogo de serviços
  • API de gerenciamento e webhooks

Entre outras funcionalidades.

Requisitos

Recursos (livres):

4 Núcleos de CPU
4 GB RAM
Personalize o hardware no “Vagrantfile” (vb.cpus e vb.memory)

Ferramentas para Instalação:

e

Helm 3 Binary :

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

Com os itens acima instalado, vamos clonar o repositório:

git clone https://github.com/felipeagger/rke-cluster-rancher && cd rke-cluster-rancher

Instalação

Começaremos subindo uma Maquina Virtual “Linux CentOS 7”, para isso acesse a pasta do repositório, e execute no terminal:

vagrant up --provider virtualbox

Esse processo pode demorar a primeira vez;

Sera executado o script basics.sh que ao subir a VM, já desabilitara o swap e instalara o Docker.

Caso queira conectar na VM via ssh, digite:

vagrant ssh master

Criando o Cluster RKE (Rancher Kubernetes Engine)

Disponibilizei um arquivo cluster.yml com a configuração de cluster All-in-One, caso queira subir um cluster diferente, crie o cluster.yml desejado com:

rke config --name cluster.yml

IP Definido no Vagrantfile & cluster.yml: 192.168.100.50

Para iniciar o RKE, execute:

rke up

Se tudo ocorrer como esperado, no final teremos essa mensagem:

INFO[0147] Finished building Kubernetes cluster successfully

e terá um aquivo kube_config_cluster.yml na pasta atual, que servira para comunicarmos com kubernetes.

Nesse momento já temos uma instancia do kubernetes (rke) rodando, podemos conferir executando:

export KUBECONFIG=./kube_config_cluster.ymlkubectl cluster-infokubectl get nodes
Cluster Status.

Instalando o Rancher no RKE

Instale os CRD’s do Cert-Manager, executando:

kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.15.0/cert-manager.crds.yaml

Logo apos, crie os namespaces abaixo:

kubectl create namespace cert-manager && kubectl create namespace cattle-system

Adicione os repositórios abaixo ao Helm:

helm repo add jetstack https://charts.jetstack.iohelm repo add rancher-stable https://releases.rancher.com/server-charts/stablehelm repo update

Instale o Cert-Manager através do Helm:

helm install   cert-manager jetstack/cert-manager   --namespace cert-manager   --version v0.15.0

Aguarde um minuto e finalmente instale o Rancher:

helm install rancher rancher-stable/rancher  --version v2.3.5 --namespace cattle-system --set hostname=master.lab.io

Acompanhe ate que o status do Cert-Manager e do Rancher esteja como “Deployed”:

helm list --all-namespaces

Agora basta acessarmos a dashboard do Rancher no browser, em https://master.lab.io/.

Ao setar a senha, e definir a URL padrão, já teremos total acesso a interface de gerenciamento:

Caso tenha um alerta no dashboard dizendo “Waiting for server-url setting to be set”, faça o seguinte:

Fix warning on Rancher

Subindo uma Aplicação

Caso queira subir uma aplicação para testar, disponibilizei uma API que podemos subir com:

kubectl apply -f apinodejs/nodejs-deployment.yamlkubectl get svc
Deployment Details on Rancher

Para acessa-la, precisaremos pegar porta que esta mapeada para o serviço, no meu caso foi a porta 30927.

Running an application on RKE

Agora, basta acessar a url no browser, ou fazer uma request no terminal

Hello World from API.
curl http://192.168.100.50:30927/

Para remover essa aplicação, execute:

kubectl delete -f apinodejs/nodejs-deployment.yaml

Vou ficando por aqui, ate a próxima galera!

Links:

Linkedin: https://www.linkedin.com/in/felipe-agger/

--

--