11 passos para para instalação e configuração do RKE2, Rancher
Antes veja como é a arquitetura do Rancher
https://fabiosilva.com.br/blog/visao-geral-da-arquitetura-do-rancher/
PASSO 01
01 – Passo a passo para instalação do RKE2 Single node e o Rancher ou Rancher Prime
Este passo você pode escolher seu modelo de arquitetura, mas para ambientes de produção a arquitetura do Kubernetes exige 3 maquinas fisicas ou virtuais
Para o RKE ambiente de produção é o mesmo procedimento.
A diferença é que você vai instalar o RKE 3 vezes.
Lembre-se que esta instalação esta para versão communitty
S.O para esta instalação usei o = SUSE LINUX ENTERPRISE 15 SP5/ SP6
Mas o binario de instalação serve para outros S.Os como sistemas DEB como Ubuntu e Debian e sistemas RPM como redhat, Mint, Fedora, Rocket.
PASSO 02
#Faça a atualização antes do sitema operacional, neste caso eu estou utilizando o SLES (Suse Linux Enterprise) com este comando abaixo:
zypper update
Como root, desative o firewalld e o apparmor em todos os três servidores (se ainda não estiverem desativados):
PASSO 03
São serviços em qualquer S.O linux
$ sudo -i
$ systemctl disable apparmor.service
$ systemctl disable firewalld.service
$ systemctl stop apparmor.service
$ systemctl stop firewalld.service
Certifique-se de que o SWAP esteja desativado e não esteja em execução.
Se o swap não tiver sido removido da proposta de disco na instalação, execute:
$ systemctl disable swap.target
$ swapoff -a
PASSO 04
Instalação do RKE 2 (Rancher Kubernetes Engine)
Qual a diferença do Kubernetes para o RKE2?
Kubernetes e RKE2 (Rancher Kubernetes Engine 2) são ambos sistemas para orquestração de contêineres, mas têm algumas diferenças significativas em termos de implementação, recursos e casos de uso específicos. Aqui estão as principais diferenças entre os dois:
Kubernetes
Desenvolvedor e Mantenedor: Desenvolvido pela Google e agora mantido pela Cloud Native Computing Foundation (CNCF).
Propósito: Um sistema de orquestração de contêineres completo e extensível para automatizar a implantação, escalonamento e gerenciamento de aplicações em contêineres.
Flexibilidade: Extremamente flexível e extensível, com um grande ecossistema de plugins e ferramentas adicionais.
Complexidade: Pode ser complexo de configurar e gerenciar, especialmente para novos usuários ou para implantações em larga escala.
Suporte: Suporte amplo e comunidade ativa, com integração nativa em muitas soluções de nuvem como Google Kubernetes Engine (GKE), Amazon EKS, e Azure Kubernetes Service (AKS).
RKE2 (Rancher Kubernetes Engine 2)
Desenvolvedor e Mantenedor: Desenvolvido pela Rancher Labs (agora parte da SUSE).
Propósito: Uma distribuição certificada do Kubernetes otimizada para segurança e fácil de usar, especialmente em ambientes de edge computing e ambientes híbridos/multicloud.
Segurança: RKE2 foca em segurança aprimorada por padrão. Ele inclui medidas de segurança adicionais, como o uso do containerd em vez do Docker, e tem um enfoque em práticas de segurança do Kubernetes mais rigorosas.
Simplicidade: Projeta simplicidade de implantação e gerenciamento, especialmente em clusters pequenos ou edge.
Compatibilidade: Totalmente compatível com o Kubernetes upstream, o que significa que você pode usar as mesmas APIs e ferramentas que usaria com qualquer implementação padrão do Kubernetes.
Gerenciamento: Integrado nativamente com Rancher, proporcionando uma interface gráfica para gerenciar clusters Kubernetes de forma centralizada, o que facilita o gerenciamento de múltiplos clusters.
Resumo das Diferenças
Objetivo: Kubernetes é uma solução genérica e extensível para qualquer caso de uso, enquanto RKE2 é otimizado para segurança e facilidade de uso, com foco em edge computing e ambientes híbridos.
Segurança: RKE2 vem com segurança aprimorada por padrão, enquanto o Kubernetes padrão pode precisar de configurações adicionais para alcançar o mesmo nível de segurança.
Facilidade de Uso: RKE2 é projetado para ser mais fácil de instalar e gerenciar, especialmente para usuários que utilizam Rancher para gerenciamento de clusters.
Integração: RKE2 oferece integração mais estreita com Rancher, proporcionando um gerenciamento centralizado mais simples de múltiplos clusters Kubernetes.
Ambos são ferramentas poderosas e a escolha entre eles dependerá das necessidades específicas do seu ambiente, da sua equipe e dos seus requisitos de segurança e gerenciamento.
curl -sfL https://get.rke2.io | sh –
Baixe o pacote e instale
Aguarde a instalação que dura de 5 a 15 minutos dependendo do tamanho da maquina, link de internet que esteja usando
Vamos iniciar o serviçodo RKE2
# systemctl enable –now rke2-server.service
Certifique-se de que o containerd/docker esteja funcionando antes de começar.
A 2 jeitos de usar e ver como esta ocorrendo por traz do ambiente
Comando journalctl -u rke2-server -f
ou tail -f /var/log/messages se for suse
Se for pacotes deb é tail -f /var/log/syslog
Abra mais 2 terminais e veja como se comporta a finalização da instalação, as vezes é até mais rapido.
Modelo messages no syslog
Todos os 2 dão alguns detalhes por exemplo certificado vai dar erro pois a instalação esta sem certificado ou com certificado autoassinado.
Para ambientes de produção é preciso já ter o certificado por conta da segurança do trafego e acesso seguro ao ambiente.
Acompanhe o progresso e espere terminar:
journalctl -u rke2-server -f
Referencia: https://docs.rke2.io/install/quickstart
PASSO 5
Agora vamos instalar o pacote KUBECTL
Instale o kubectl (existem outras maneiras de fazer isso, por exemplo, via yum, apt-get e zypper no SUSE)
Mas vamos pelo binario com este comando abaixo
# curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl
# chmod +x kubectl
Commando chmod para permissões basicas no Kubectl
Se não souber o o que é CHMOD veja no Guia Foca se você não tem familiaridade com comandos basicos do Linux
https://www.guiafoca.org/guiaonline/iniciante/ch11.html
# mv kubectl /usr/local/bin/kubectl
Mova o pacote para este diretorio acima onde ficam os binarios
Referencia: https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/
O kubectl é uma ferramenta de linha de comando para interagir e gerenciar clusters Kubernetes. É essencial para administradores de sistemas, desenvolvedores e operadores que trabalham com Kubernetes. Aqui está uma visão geral do que o kubectl faz e algumas de suas principais funcionalidades:
Funções e Capacidades do kubectl
- Gerenciamento de Recursos do Kubernetes:
- Criar: Você pode criar recursos no cluster Kubernetes a partir de arquivos de configuração YAML ou JSON. Por exemplo, kubectl apply -f my-deployment.yaml cria ou atualiza um recurso.
- Listar: Você pode listar recursos como pods, serviços, deployments, namespaces, etc. Por exemplo, kubectl get pods lista todos os pods no namespace atual.
- Atualizar: Permite atualizar recursos existentes. Por exemplo, kubectl set image deployment/my-deployment my-container=my-image:version.
- Excluir: Você pode excluir recursos. Por exemplo, kubectl delete pod my-pod remove um pod específico.
- Visualização e Depuração:
- Logs: Ver logs dos contêineres em um pod. Por exemplo, kubectl logs my-pod.
- Execução de Comandos: Executar comandos dentro de contêineres em um pod. Por exemplo, kubectl exec -it my-pod — /bin/bash abre um shell dentro de um contêiner.
- Descrever Recursos: Obter detalhes sobre um recurso específico. Por exemplo, kubectl describe pod my-pod.
- Gerenciamento de Configurações:
- Contextos e Configurações: Gerenciar múltiplos clusters e contextos. Por exemplo, kubectl config use-context my-cluster muda para um contexto específico.
- ConfigMaps e Secrets: Gerenciar configurações e segredos no Kubernetes. Por exemplo, kubectl create configmap my-config –from-file=config.properties.
- Escalonamento:
- Escalonar Aplicações: Aumentar ou diminuir o número de réplicas de um deployment. Por exemplo, kubectl scale deployment/my-deployment –replicas=5.
- Atualização e Rollbacks:
- Implementar Atualizações: Aplicar novas versões de uma aplicação sem tempo de inatividade. Por exemplo, kubectl rollout restart deployment/my-deployment.
- Rollbacks: Reverter para uma versão anterior de uma aplicação. Por exemplo, kubectl rollout undo deployment/my-deployment.
PASSO 6
- Instale o Helm (existem outras maneiras de fazer isso, por exemplo, via zypper), eu vou colocar via zypper abaixo mas o modelo que vou instalar oficial aqui é via binario.
Passos para Instalar o Helm via zypper
- Adicione o repositório Helm: Primeiro, você precisa adicionar o repositório do Helm para zypper. Abra um terminal e execute o seguinte comando:
sudo zypper addrepo https://helm.baltorepo.com/stable/debian/ helm
- Importe a chave GPG: Para garantir a autenticidade dos pacotes do repositório Helm, importe a chave GPG com o comando:
sudo rpm –import https://helm.baltorepo.com/stable/debian/pubkey.gpg
- Atualize os repositórios: Atualize a lista de repositórios para garantir que o zypper tenha a última versão do índice de pacotes:
sudo zypper install helm
- A versão deste passo a passo oficial é esta, então siga esta.
# curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | sh
Referencia: https://helm.sh/docs/intro/install/
PASSO 07
Use o arquivo kubeconfig Gerado
# mkdir ~/.kube
# cd ~/.kube
# ln -sf /etc/rancher/rke2/rke2.yaml config
Cria um diretório oculto chamado .kube no seu diretório home. Este diretório é usado para armazenar os arquivos de configuração do Kubernetes.
Altera o diretório de trabalho atual para o recém-criado diretório .kube.
Cria um link simbólico chamado config no diretório .kube que aponta para o arquivo rke2.yaml localizado em /etc/rancher/rke2/. Este arquivo contém as configurações necessárias para que o kubectl possa se conectar ao cluster Kubernetes gerenciado pelo RKE2.
Este passo essencialmente configura o ambiente do usuário para que o kubectl use automaticamente o arquivo kubeconfig gerado pelo RKE2. Isso permite a administração e gerenciamento do cluster Kubernetes de forma conveniente e centralizada usando o kubectl.
PASSO 08
Instalando o cert-manager (existem outras maneiras de fazer isso como mencionado acima):
# kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.5/cert-manager.yaml
Referencia: https://cert-manager.io/docs/installation/kubectl/
PASSO 09
Verify that it is successfully deployed:
# kubectl get pods –namespace cert-manager ou
kubectl get pods -A
O que este commando faz?
Resumo do Comando `kubectl get pods -A`
O comando `kubectl get pods -A` é usado para listar todos os pods em todos os namespaces no cluster Kubernetes.
O que este comando faz:
- kubectl: A ferramenta de linha de comando para interagir com clusters Kubernetes.
- get pods: Pede ao Kubernetes para listar todos os pods.
- -A ou –all-namespaces: Especifica que a listagem deve incluir pods de todos os namespaces no cluster, não apenas do namespace padrão ou do namespace atual.
Finalidade:
Este comando fornece uma visão geral completa de todos os pods em execução no cluster Kubernetes, independentemente do namespace em que estão localizados. Isso é útil para administração e depuração, permitindo que os administradores vejam rapidamente o estado de todos os pods em todo o cluster.
PASSO 10
RANCHER
Rancher é uma plataforma de gerenciamento de contêineres de código aberto desenvolvida pela Rancher Labs. Ele facilita a implantação, o gerenciamento e a escalabilidade de clusters Kubernetes em ambientes multi-nuvem, on-premises e híbridos. Rancher simplifica a complexidade do Kubernetes, fornecendo uma interface de usuário amigável e uma vasta gama de ferramentas integradas.
Principais Recursos do Rancher:
- Gerenciamento Centralizado de Clusters:
– Administra múltiplos clusters Kubernetes de diferentes provedores de nuvem ou ambientes on-premises a partir de uma única interface.
Ou seja, de qualquer lugar sem lockin.
Integração com Kubernetes:
– Totalmente compatível com Kubernetes, permitindo que os usuários aproveitem todas as funcionalidades do Kubernetes com uma camada adicional de ferramentas e facilidades de gerenciamento.
Interface de Usuário Intuitiva:
– Fornece uma GUI (interface gráfica de usuário) para facilitar o gerenciamento de recursos Kubernetes, como pods, deployments, serviços, e namespaces.
Segurança e Controle de Acesso:
– Implementa controle de acesso baseado em funções (RBAC) para gerenciar permissões e segurança dos usuários.
Catálogo de Aplicações:
– Inclui um catálogo de aplicações (Helm charts) que permite a implantação de aplicações com um clique.
Monitoramento e Alertas:
– Ferramentas integradas para monitoramento de recursos e alertas baseados em eventos, facilitando a detecção e resposta a problemas.
Rancher Prime
Rancher Prime (anteriormente conhecido como Rancher Enterprise) é a versão comercial do Rancher, oferecida pela SUSE após a aquisição da Rancher Labs. Rancher Prime fornece suporte empresarial e funcionalidades avançadas além do que está disponível na versão open-source do Rancher.
Principais Recursos do Rancher Prime:
- Suporte Empresarial:
– Oferece suporte técnico 24/7 e SLAs (acordos de nível de serviço) para garantir a operação contínua dos clusters Kubernetes em ambientes críticos.
Funcionalidades Avançadas de Segurança:
– Inclui ferramentas e recursos adicionais de segurança para proteger ambientes Kubernetes em conformidade com normas e regulamentos empresariais.
Otimizações e Integrações:
– Melhorias de desempenho e integrações mais profundas com outras ferramentas empresariais, como sistemas de CI/CD, soluções de monitoramento, e ferramentas de segurança.
Consultoria e Treinamento:
– Serviços adicionais de consultoria e treinamento para ajudar as organizações a maximizar o valor de seus ambientes Kubernetes.
Suporte para Ambientes Críticos:
– Recursos e suporte específicos para implementar e gerenciar Kubernetes em ambientes de missão crítica, incluindo edge computing e IoT.
Resumo
– Rancher: Uma plataforma de código aberto que simplifica o gerenciamento de clusters Kubernetes em diferentes ambientes com uma interface amigável e um conjunto de ferramentas integradas.
– Rancher Prime: A versão comercial do Rancher, que oferece suporte empresarial, funcionalidades de segurança avançadas, otimizações, consultoria, e treinamento para empresas que necessitam de suporte e recursos adicionais para seus ambientes Kubernetes.
Vamos la instalar?
Iremos utilizar o helm para instalar
Não iremos expor o repositório do rancher prime pois tem negociações comerciais para que seja feito a instalação ou upgrade de rancher para Rancher Prime ok?
# helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
# helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
# helm repo add rancher-alpha https://releases.rancher.com/server-charts/alpha para novas versoes do
# helm repo update
# kubectl create namespace cattle-system
# helm install rancher rancher-stable/rancher –namespace cattle-system –set hostname=rancher.suselab.localdomain –set bootstrapPassword=admin
OBS: Para acessar a WEBUI precisa estar com hostname corretamente configurado se não você não consegue acessar corretamente, o password coloque uma senha adequada para acessar o ambiente.
PASSO 11
Aguarde e verifique se a instalação foi concluída:
# kubectl -n cattle-system rollout status deploy/rancher
# kubectl -n cattle-system get deploy rancher
PASSO 12
Agora vamos acessar a WEBUI no navegador com o endereço que você colocou.
Você acessará, no primeiro acesso você colocará a senha que defininiu no bootstrap do passo 10 ou defina uma senha sua especifica.
Acesso com usuário admin e a nova senha.
De continuar e acesso o ambiente.
Finalizado a instalação do Rancher e podera usar seu ambiente e gerenciar suas aplicações com facilidade.
Antes de terminar de este comando e todos estes containers precisam estar devidamente instalados no ambientes
De este comando novamente
kubectl get pods -A
Esta é a infraestrutura do Rancher
Fleet, Helm, Rancher, Certmanager, Cloudcontrol, etcd, kubectl rke2.
Se caso não tiver nenhum pacote ou serviço deste recomece ou analise os logs para avaliar os erros.
Proximo post vou começar a explicar todos menus.
Até a proxima
Último vídeo
Novidades via inbox
Fique por dentro no meu Boletim digital toda semana um conteúdo novo