Instalando Cluster RKE com Rancher - Kubernetes
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
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
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:
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
Para acessa-la, precisaremos pegar porta que esta mapeada para o serviço, no meu caso foi a porta 30927.
Agora, basta acessar a url no browser, ou fazer uma request no terminal
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: