11 passos para para instalação e configuração do RKE2, Rancher

Last Updated: 11/07/2024By

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

Picture3

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 –

Picture4

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

Picture5

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.

Picture6

Modelo messages no syslog

Picture7

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

Picture8

# 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  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

  1. 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

  1. 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

 

  1. 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

  1. 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

  1. 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

Picture9

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

Picture10

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

Picture11

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:

  1. kubectl: A ferramenta de linha de comando para interagir com clusters Kubernetes.
  2. get pods: Pede ao Kubernetes para listar todos os pods.
  3. -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:

  1. 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:

  1. 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

Picture12

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.

Referencia: https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster#install-the-rancher-helm-chart

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

Picture13

PASSO 12

Agora vamos acessar a WEBUI no navegador com o endereço que você colocou.

Picture14

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.

Picture15

De continuar e acesso o ambiente.

Picture17

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

Picture18

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

newsletter-icon

Novidades via inbox

Fique por dentro no meu Boletim digital toda semana um conteúdo novo

Leave A Comment