Kafka no k8s [Strimzi] Zero to Hero round 1

Mateus Oliveira
Engenharia de Dados Academy
3 min readApr 15, 2021

Na atual geração de Big Data estamos vendo uma movimentação natural para o mundo de containerização, sendo assim vou fazer uma sessão de 5 partes para entendermos melhor sobre apache Kafka no kubernetes, então como a imagem acima, estamos no pé da montanha, vamos agora iniciar a caminhada.

Ainda de começarmos alguns pontos:

  • Não é necessário ter conhecimento de Kubernetes
  • Não é necessário ter conhecimento em Apache Kafka

Conceitos para melhor entendimento:

  • Helm é o gerenciador de pacotes de aplicação de Kubernetes.
  • Chart é o nome do pacote das aplicação dentro do Helm.

Para essa primeira sessão vamos preparar o ambiente instalando os programadas necessários para testarmos o Strimzi dento de casa.

Vamos lá, primeiramente vamos instalar o docker:

Eu utilizo o Docker desktop for MacOS, até o momento não tive nenhum problema okay!

Depois o nosso minikube:

Recomendação é utilizar o docker como driver pois vamos precisar do docker para as imagens do Kafka Connect futuramente nas próximas sessões, então vamos instalar somente o que vamos usar!

Dito isso agora nosso ambiente está quase pronto, agora vamos instalar o helm cli para poder fazer o deployment do Strimzi de forma simples!

Agora sim, depois de realizar as instalações citadas acima, vamos acessar o Strimzi github e clonar o repositório, vamos usar bastante o mesmo:

Com todas as ferramentas instaladas em mãos, vamos agora começar o deployment dentro do minikube agora:

Criação da namespace ingestion, essa é a namespace que iremos implantar as aplicações do Apache Kafka e Strimzi Operator

kubectl create namespace ingestion

Agora vamos primeiro começar pelo Strimzi Operator, primeiro adicionando o repositório do Strimzi e em seguida instando:

Repositório:

helm repo add strimzi https://strimzi.io/charts/

Instalação do chart:

helm install kafka strimzi/strimzi-kafka-operator --namespace ingestion --version 0.21.0

O Kubernetes utiliza o desire state então para conferir se o strimzi operator foi instalado ready 1/1:

Agora, vamos no repositório de strimzi no github que foi clonado, vamos no seguinte caminho abaixo:

examples/kafka/

Neste diretório temos alguns arquivos yaml de exemplo para subir o kafka, vamos entender 2 conceitos importantes:

  • Ephemeral = Não é criado um persistent volume, ou seja se os pods do Kafka cairem por algum motivo o dado será perdido pois existe somente dentro dos pods.
  • JBOD = Just a Bunch Of Disks, nesse caso irá criar persistent volumes no cluster de Kubernetes no nosso caso minikube e caso precise de mais disco, e só adicionar no arquivo yaml o novo disco.

Para a nossa experimentação vamos começar com ephemeral, acesse a pasta do kafka pelo terminal, e execute o comando

kubectl apply -f kafka-ephemeral.yaml -n ingestion

Tudo dando certo, irá aparecer o cluster created e os pods criados e executando:

Todos rodando agora vamos para o segundo round!

--

--