Fala, pessoal!
Tudo certo?
Trarei aqui uma introdução ao Kubernetes, que é um poderoso orquestrador de contêiners e muito utilizado no mercado.
Nessa introdução, iremos preparar um ambiente em nossa maquina, utilizando o minikube que é um programa que simula um cluster em nossa maquina. E o kubectl que é a ferramenta de linha de comando do Kubernetes.
Também irei explicar alguns artefatos do Kubernetes, como Pods, Services (ClusterIP, NodePort e LoadBalancer), ConfigMap e ReplicaSet.
Pré-requisitos
O principal pre-requisito para a utilização do Kubernetes nessa postagem é familiaridade com o docker e linha de comando.
Você pode encontrar uma postagem introdução ao docker: (docker parte 1)
Outra dependência é uma ferramenta de virtualização, como o virtualbox, vmware ou hyperV.
Instalando o minikube
A instalação do minikube é bem simples.
Apenas devemos utilizar os comandos abaixo:
# Comando 1
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# Comando 2
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Como em todo o sistema linux, se ele não reclamar a instalação deu certo! 🙂
Para iniciar nosso cluster, devemos passar o comando abaixo.
minikube start
Como podem ver, nosso cluster está no ar! E o virtualbox foi utilizado como driver. 🙂
Instalando o kubectl
A instalação é muito parecida com a do minikube.
Usamos apenas os comandos abaixo:
# Comando 1
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# Comando 2
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Novamente não há reclamações 🙂
Instalação concluída! 😀
O que são Pods?
Os Pods são a menor unidade de um cluster Kubernetes, eles podem conter 1 ou mais contêiners.
Ele também é o menor artefato “deployable” e gerenciado pelo Kubernetes.
Abaixo, uma ilustração de 1 Pod com 4 contêineres.
O que são Services?
Com os Services, podemos criar IP’s fixos nos nossos contêineres e podemos realizar o balanceamento de carga também.
Seus principais recursos são:
ClusterIP
– Realiza a comunicação entre diferentes pods dentro de um mesmo cluster
– Fixa um IP pods atraves das labels
NodePort
– Serviço que permite a comunicação com o mundo externo
– Também funciona como ClusterIP
LoadBalancer
– LoadBalancer nada mais é do que um ClusterIP que permite a comunicação entre uma maquina do mundo externo e os nossos pods. Além disso, ele também realiza o balanceamento de carga de requisições.
Toda a comunicação realizada para os Pods, passa por um Service.
O que são ConfigMaps?
Os ConfigMaps são configurações que nos permite passar variáveis de ambiente para nossos contêineres.
Com esse recurso, podemos aproveitar um único arquivo com as variáveis para diversos Pods.
O que são ReplicaSets?
Os ReplicaSets são uma camada que nos permite gerenciar 1 ou mais Pods.
Esse componente permite que nós possamos definir o numero de replicas que queremos de um Pod e também permite a criação automática dos Pods em caso de falha.
Criando o primeiro Pod
Agora, vamos por um pouco a mão na massa! B)
Para testar, vamos criar um Pod simples, rodando uma imagem do nginx.
O comando abaixo inicia nosso minikube, que fará o papel de cluster dentro da nossa maquina.
minikube start
Depois do cluster iniciar, iremos passar comandos utilizando o kubectl.
Para criar um Pod, basta digitarmos o comando abaixo:
kubectl run nginx-pod --image=nginx:latest
Agora, para vermos o Pod em execução, podemos escrever o comando abaixo:
kubectl get pods
Conclusão
Bom, nessa postagem abordamos principalmente a parte da instalação do Kubernetes.
Na próxima postagem irei abordar os comandos e os arquivos de configuração.
Espero que tenham gostado!
Um abraço!
🙂
Cara! Bem bacana seus conteúdos…parabéns!
Acompanhando!