- Published on
Provisionamento de um Rancher HA
- Authors

- Name
- Natália Granato
- @granatowp
Introdução ao Rancher
O Rancher é uma plataforma de gerenciamento de Kubernetes que simplifica a operação de clusters Kubernetes em ambientes de produção. Ele oferece uma interface amigável e um conjunto robusto de ferramentas para facilitar a administração, monitoramento e escalabilidade de clusters Kubernetes.
Benefícios do Rancher
- Gerenciamento Centralizado: Permite gerenciar múltiplos clusters Kubernetes a partir de uma única interface, seja em ambientes on-premises, na nuvem ou em ambientes híbridos.
- Facilidade de Uso: Oferece uma interface gráfica intuitiva que facilita a criação, configuração e monitoramento de clusters Kubernetes, mesmo para usuários com pouca experiência.
- Segurança e Controle: Inclui recursos avançados de segurança, como autenticação, autorização e controle de acesso baseado em funções (RBAC), garantindo que apenas usuários autorizados possam acessar e modificar os recursos do cluster.
- Automação e Escalabilidade: Suporta a automação de tarefas comuns, como atualizações de cluster e escalabilidade de aplicativos, permitindo que as equipes de DevOps se concentrem em tarefas mais estratégicas.
- Integração com Ferramentas de DevOps: Integra-se facilmente com ferramentas populares de DevOps, como Jenkins, Prometheus e Grafana, proporcionando uma experiência de desenvolvimento e operações contínuas (CI/CD) mais eficiente.
Com o Rancher, as organizações podem acelerar a adoção do Kubernetes, reduzir a complexidade operacional e melhorar a eficiência das equipes de TI, garantindo que os aplicativos sejam executados de forma confiável e segura em qualquer ambiente.
Passos para Instalação
Pré-requisitos
- Um cluster Kubernetes dedicado.
- Acesso ao cluster Kubernetes via
kubectl. - Helm instalado e configurado.
Passos Detalhados para Instalação
1. Instalação do NGINX Ingress Controller
O NGINX Ingress Controller é necessário para gerenciar o tráfego de entrada para os serviços no cluster Kubernetes.
Crie o namespace para o NGINX Ingress Controller:
kubectl create ns nginx-ingressEste comando cria um namespace chamado
nginx-ingressno cluster Kubernetes.Instale o NGINX Ingress Controller usando Helm:
helm install nginx-ingress oci://ghcr.io/nginxinc/charts/nginx-ingress -n nginx-ingressEste comando instala o NGINX Ingress Controller no namespace
nginx-ingressusando o Helm.Verifique os serviços criados e obtenha o IP do LoadBalancer:
kubectl get svc -n nginx-ingressEste comando lista todos os serviços no namespace
nginx-ingress, incluindo o IP do LoadBalancer. Anote este IP, pois ele será necessário para configurar o apontamento do DNS.
2. Instalação do Cert-manager
O Cert-manager é necessário para gerenciar certificados SSL/TLS automaticamente.
Aplique as CustomResourceDefinitions (CRDs) necessárias:
kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.9/deploy/manifests/00-crds.yamlEste comando aplica as definições de recursos personalizados necessárias para o Cert-manager.
Crie o namespace para o Cert-manager:
kubectl create namespace cert-managerEste comando cria um namespace chamado
cert-managerno cluster Kubernetes.Adicione um rótulo ao namespace para desabilitar a validação:
kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=trueEste comando adiciona um rótulo ao namespace
cert-managerpara desabilitar a validação.Adicione o repositório Helm do Cert-manager:
helm repo add jetstack https://charts.jetstack.io --force-updateEste comando adiciona o repositório Helm do Cert-manager.
Instale o Cert-manager usando Helm:
helm install \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.15.3 \ --set crds.enabled=trueEste comando instala o Cert-manager no namespace
cert-managerusando o Helm.
3. Instalação do Rancher
O Rancher é uma plataforma de gerenciamento de Kubernetes que facilita a operação de clusters Kubernetes em ambientes de produção.
Adicione o repositório Helm do Rancher:
helm repo add rancher-stable https://releases.rancher.com/server-charts/stableEste comando adiciona o repositório Helm do Rancher.
Instale o Rancher usando Helm:
helm upgrade -i rancher rancher-stable/rancher --set hostname=rancher.nataliagranato.xyz -n cattle-systemEste comando instala o Rancher no namespace
cattle-systemusando o Helm. O parâmetro--set hostname=rancher.nataliagranato.xyzdefine o hostname personalizado para o Rancher.
Utilização de um Domínio Personalizado
Ao instalar o Rancher, é importante utilizar um domínio personalizado (por exemplo, rancher.nataliagranato.xyz). Este domínio será usado para acessar a interface do Rancher. Não troque este DNS após a instalação, pois isso pode causar problemas de acesso e funcionamento do Rancher. O domínio personalizado deve estar configurado corretamente no seu DNS para apontar para o IP do Ingress Controller obtido anteriormente.
Pós-instalação
O servidor Rancher foi instalado. Note que pode levar alguns minutos para que o Rancher seja totalmente inicializado. Durante esse tempo, os certificados serão emitidos, os contêineres serão iniciados e a regra de Ingress será configurada.
Confira a documentação oficial em Rancher Docs.
Se você forneceu sua própria senha de bootstrap durante a instalação, acesse https://rancher.nataliagranato.xyz para começar.
Se esta é a primeira vez que você instalou o Rancher, execute o seguinte comando e clique na URL gerada:
echo https://rancher.nataliagranato.xyz/dashboard/?setup=$(kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}')
RUNBOOKS
Configuração do Domínio Personalizado para o Rancher
Obtenha o IP do LoadBalancer:
kubectl get svc -n nginx-ingressAnote o IP do LoadBalancer listado no serviço
nginx-ingress.Configure o apontamento do DNS:
- Acesse o painel de controle do seu provedor de DNS.
- Crie um registro A para o domínio
rancher.nataliagranato.xyzapontando para o IP do LoadBalancer obtido no passo anterior.
Solução de Problemas com o Ingress
Se, por algum motivo o deploy do Rancher ocorreu corretamente, mas você não está conseguindo acessar a url, é possível que o Ingress criado para acessar o Rancher, não obtive o valor do Ingress Controller, será necessário editar manualmente:
Edite o Ingress do Rancher:
kubectl edit ingress rancher -n nginx-ingressAdicione a annotation do seu Ingress Controller e salve para acessar a URL.
annotations:
kubernetes.io/ingress.class: 'nginx'