Redis Operator: A forma mais simples de instalar e gerenciar o Redis no Kubernetes

Por Gaspar Barancelli Junior em 02 de março de 2023

O Redis é um banco de dados em memória de código aberto que é amplamente utilizado como cache, armazenamento de sessão e filas de mensagens. O Redis Operator é um controlador Kubernetes que simplifica a implantação e a operação do Redis no Kubernetes.

Neste tutorial, vamos aprender como instalar o Redis Operator e criar um cluster Redis no Kubernetes.

Pré-requisitos

Antes de começarmos, é necessário ter o Kubernetes instalado e configurado. Além disso, você precisa ter o kubectl, a ferramenta de linha de comando do Kubernetes, instalado em seu computador. Você também precisa ter acesso a um cluster Kubernetes.

Passo 1: Instalando o Redis Operator

O Redis Operator é fornecido pela Redis Labs e está disponível como um pacote Helm. Para instalar o Redis Operator, execute o seguinte comando:

helm repo add redislabs https://charts.redislabs.com
helm install redis-operator redislabs/redis-operator --create-namespace --namespace redis

Este comando adiciona o repositório do Redis Labs ao Helm e instala o Redis Operator no namespace "redis".

Passo 2: Criando um cluster Redis

Depois de instalar o Redis Operator, você pode criar um cluster Redis usando o arquivo YAML de definição. Crie um arquivo chamado redis-cluster.yaml e copie o seguinte conteúdo para ele:

apiVersion: "redis.k8s.io/v1alpha1"
kind: "RedisCluster"
metadata:
  name: "my-redis-cluster"
  namespace: "redis"
spec:
  # Number of master nodes in the cluster
  masterSize: 3
  # Number of replicas per master node
  replicaSize: 1
  # Image used for Redis
  image: "redislabs/redis"

Este arquivo YAML define um RedisCluster com 3 nós mestres e 1 réplica por nó mestre. O Redis Operator usa a imagem redislabs/redis como base para criar os contêineres Redis.

Para criar o cluster Redis, execute o seguinte comando:

kubectl apply -f redis-cluster.yaml

Isso criará o cluster Redis no Kubernetes. Você pode verificar o status do cluster executando o seguinte comando:

kubectl get rediscluster -n redis

Você deve ver a saída a seguir:

NAME             AGE
my-redis-cluster   30s

Podemos verificar a criação dos pods do Redis com o seguinte comando:

kubectl get pods -n redis

A saída deve ser semelhante à seguinte:

NAME                               READY     STATUS    RESTARTS   AGE
redis-cluster-0                    1/1       Running   0          5m
redis-cluster-1                    1/1       Running   0          5m
redis-cluster-2                    1/1       Running   0          5m
redis-operator-679f9d6f7b-hjprw    1/1       Running   0          15m

Observe que foram criados três pods com o prefixo "redis-cluster", que representam os nós do cluster do Redis.

Acessar o cluster

Para testar o cluster do Redis, podemos usar o seguinte comando:

kubectl run -it --rm redis-client --image redislabs/redis --restart=Never --namespace redis -- redis-cli -h my-redis-cluster.redis-cluster -a password

Esse comando inicia um contêiner temporário com o utilitário redis-cli e conecta-se ao cluster do Redis através do endereço "redis-cluster" e da porta 6379.

Agora podemos executar alguns comandos no prompt do redis-cli:

127.0.0.1:6379> set blog gasparbarancelli
-> Redirected to slot [12182] located at redis-cluster-2.redis-cluster.redis.svc.cluster.local:6379
OK
127.0.0.1:6379> get blog
-> Redirected to slot [12182] located at redis-cluster-2.redis-cluster.redis.svc.cluster.local:6379
"gasparbarancelli"

Observe que o comando set foi redirecionado para o nó correto do RedisCluster, e o comando get retornou o valor que foi definido anteriormente.

Conclusão

Concluímos aqui o tutorial de como instalar e configurar um cluster Redis no Kubernetes utilizando o Redis Operator. Como vimos, essa solução simplifica bastante a criação e gerenciamento de um cluster Redis no Kubernetes, permitindo que possamos ter mais facilidade e escalabilidade na implementação de nossas aplicações. Com essas informações em mãos, esperamos que você possa aproveitar ao máximo o poder do Redis em seus projetos, com mais eficiência e menor complexidade no gerenciamento da infraestrutura. Lembre-se de sempre estar atualizado com as novas ferramentas e tecnologias, e continue aprimorando seus conhecimentos em Kubernetes e suas soluções.

// Livros recomendados relacionados ao assunto do post

// Compartilhe esse Post